Get it on Google Play


Wm뮤 :: '아두이노' 카테고리의 글 목록

블로그 이미지
가끔 그림그리거나 3D모델링하거나
취미로 로봇만드는
퇴직한 전자과 게임프로그래머
2020.3.48f1 , 2022.3.6f1 주로 사용
모카쨩
@Ahzkwid

Recent Comment

Archive


2023. 12. 6. 08:19 아두이노

 

물질 밀도 (g/cm3) 비저항 (μΩ. cm) 무게대비저항 녹는점 (°C) 비고
구리 8.9 1.68 14.952 1084.62 부식성
알루미늄 2.7 2.65 7.155 660.32  
10.49 1.59 16.6791 961.8 부식성
19.32 2.44 47.1408 1064  
11.34 22 249.48 327.5 독성
7.874 9.71 76.45654 1538  
텅스텐 19.25 5.6 107.8 3422  
리튬 0.534 8.55 4.5657 180.5 부식성, 폭발성
나트륨 0.968 4.2 4.0656 97.79 부식성, 폭발성
마그네슘 1.738 3.94 6.84772 650 부식성, 폭발성
그래핀 2.267 1 2.267 3550  
흑연 2.267 5 11.335 3550 자연상태

 

 

비저항은 부피대비 저항을 말합니다.

 

그래서 전문가들은 은선같은거 절대로 안 씁니다. 전기저항은 상대적이기 때문

 

알루미늄은 무게대비전도도가 우수하기 때문에 송전선으로 알루미늄이 쓰입니다.

다만 조금만 휘어져도 끊어지기 때문에 가정용 전선으로는 쓰이지 않습니다.

 

철은 고온에서 잘 견디기 때문에 열선으로 많이 쓰입니다.

 

 

 

 

 

 

 

 

posted by 모카쨩
2022. 7. 9. 15:48 아두이노

 

 

2022기준 납땜된것 3200원에 구할수 있다

 

 

 

 

 

 

 

전원은 5V사용하고

SCL은 SCL에

SDA는 SDA에 연결한다

 

우노,나노의 경우

A4가 SDA

A5가 SCL이다

 

 

 

올려서 테스트 한다

 

 

 

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>


Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); 
  display.setTextColor(SSD1306_WHITE);

  display.clearDisplay();
  display.setTextSize(3);

  
  display.setCursor(0,0);
  display.println("Hello,");
  display.print("World!");
  display.display();
}

void loop() {
}

최소작동코드

posted by 모카쨩
2021. 9. 23. 20:17 아두이노

 

https://forum.arduino.cc/t/due-wont-start-after-power-off-on-have-to-reset/247763/35

 

Due won't start after power off-on, have to reset

Hi again! Enclosed you will find the photo of MCP soldered to bottom layer. Please note that MCP package is upside down to fit right pinout! Just solder it between RESET and 3.3V and find closest ground and “draw” track or use small piece of wire to co

forum.arduino.cc

 

 

호환보드 고질병이라고 한다

다들 캐패시터로 일정시간뒤에 리셋이 눌리도록하여 해결한다고 한다

 

다 좋은데 위 회로는 캐패시터 내압이 안 쓰여있어서 충전시간을 구할수가 없다...

필자는 2번의 시도끝에

1MΩ 2개와 25V 68µF 캐패시터로 리셋에 성공했다

 

왜 이런 이상한 캐패시터로 했냐면 작은게 이거밖에 없었기 때문...

겸사겸사 1메가옴을 써서 낭비되는 전력도 줄였다

(나중에 계산해보니 위 회로가 선형충전속도에 내압 10v라고 가정하면 0.22초인데 이쪽은 2.72초였다.

훨씬 낮은 전압에서 스위치가 눌린것으로 간주하기 때문에 정상 작동한듯)

 

용량이 지나치게 작거나 크지만 않으면 어지간한 캐패시터는 다 될것이다

다음부턴 보드를 살때 잘 보고 고르자

'아두이노' 카테고리의 다른 글

아두이노 OLED 128x64  (0) 2022.07.09
아두이노 하드리셋 방법  (0) 2021.09.23
아두이노 키코드 모음  (0) 2021.09.17
posted by 모카쨩
2021. 9. 23. 20:14 아두이노

 

 

https://stackoverflow.com/questions/5290428/

 

 

코드를 잘못 짜서 무한루프에 빠진채 RunnerException이 뜨며 업로드가 안 되는 현상이 있었다

processing.app.debug.RunnerException
	at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:160)
	at cc.arduino.UploaderUtils.upload(UploaderUtils.java:78)
	at processing.app.SketchController.upload(SketchController.java:709)
	at processing.app.SketchController.exportApplet(SketchController.java:682)
	at processing.app.Editor$DefaultExportHandler.run(Editor.java:2190)
	at java.lang.Thread.run(Thread.java:745)
Caused by: processing.app.SerialException: 시리얼 포트  'COM5'  동작중 에러 발생.
	at processing.app.Serial.touchForCDCReset(Serial.java:87)
	at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:144)
	... 5 more
Caused by: jssc.SerialPortException: Port name - COM5; Method name - openPort(); Exception type - Port busy.
	at jssc.SerialPort.openPort(SerialPort.java:164)
	at processing.app.Serial.touchForCDCReset(Serial.java:81)
	... 6 more

 

 

 

 

리셋버튼을 누르면 부팅시 아주 잠깐 아두이노가 멈춰있는걸 이용한 방법이다

 

1. 빈 아두이노 코드를 준비한다

2. 업로드 버튼을 누르고 약 0.5초뒤 아두이노 리셋을 한다

3. 정상적으로 리셋되었는지 확인한다

 

다만 매우 많은 시행착오를 거쳐서 올려야 한다. 필자의 경우 20번 업로드를 시도했고 그중 한번 성공했다.

원랜 초기화버튼같은게 있나 찾아보려했지만 현시점에서 해결되었으므로 종료

 

 

'아두이노' 카테고리의 다른 글

아두이노 첫 부팅시 리셋버튼 눌러줘야 하는현상  (0) 2021.09.23
아두이노 키코드 모음  (0) 2021.09.17
아두이노 키보드  (0) 2021.08.28
posted by 모카쨩
2021. 9. 17. 01:44 아두이노

 

 

 

일반키는 Mouse.press('a'); 이런식으로 치면 된다

#define KEY_LEFT_CTRL       0x80
#define KEY_LEFT_SHIFT      0x81
#define KEY_LEFT_ALT        0x82
#define KEY_LEFT_GUI        0x83
#define KEY_RIGHT_CTRL      0x84
#define KEY_RIGHT_SHIFT     0x85
#define KEY_RIGHT_ALT       0x86
#define KEY_RIGHT_GUI       0x87

#define KEY_UP_ARROW        0xDA
#define KEY_DOWN_ARROW      0xD9
#define KEY_LEFT_ARROW      0xD8
#define KEY_RIGHT_ARROW     0xD7
#define KEY_BACKSPACE       0xB2
#define KEY_TAB             0xB3
#define KEY_RETURN          0xB0
#define KEY_ESC             0xB1
#define KEY_INSERT          0xD1
#define KEY_DELETE          0xD4
#define KEY_PAGE_UP         0xD3
#define KEY_PAGE_DOWN       0xD6
#define KEY_HOME            0xD2
#define KEY_END             0xD5
#define KEY_CAPS_LOCK       0xC1
#define KEY_F1              0xC2
#define KEY_F2              0xC3
#define KEY_F3              0xC4
#define KEY_F4              0xC5
#define KEY_F5              0xC6
#define KEY_F6              0xC7
#define KEY_F7              0xC8
#define KEY_F8              0xC9
#define KEY_F9              0xCA
#define KEY_F10             0xCB
#define KEY_F11             0xCC
#define KEY_F12             0xCD


#define KEY_F13             0x68
#define KEY_F14             0x69
#define KEY_F15             0x6A
#define KEY_F16             0x6B
#define KEY_F17             0x6C
#define KEY_F18             0x6D
#define KEY_F19             0x6E
#define KEY_F20             0x6F
#define KEY_F21             0x70
#define KEY_F22             0x71
#define KEY_F23             0x72
#define KEY_F24             0x73

#define KEY_MUTE                0x7F
#define KEY_VOLUMEUP            0x80
#define KEY_VOLUMEDOWN      0x81

#define KEY_KEYPAD_0            0x62
#define KEY_KEYPAD_1            0x59
#define KEY_KEYPAD_2            0x5A
#define KEY_KEYPAD_3            0x5B
#define KEY_KEYPAD_4            0x5C
#define KEY_KEYPAD_5            0x5D
#define KEY_KEYPAD_6            0x5E
#define KEY_KEYPAD_7            0x5F
#define KEY_KEYPAD_8            0x60
#define KEY_KEYPAD_9            0x61
#define KEY_KEYPAD_DECIMAL      0x63
#define KEY_KEYPAD_ENTER        0x58
#define KEY_KEYPAD_PLUS     0x57
#define KEY_KEYPAD_MINUS        0x56
#define KEY_KEYPAD_MULTIPLY     0x55
#define KEY_KEYPAD_DIVIDE       0x54
#define KEY_KEYPAD_NUMLOCK      0x53
#define KEY_KEYPAD_EQUALS       0x67

'아두이노' 카테고리의 다른 글

아두이노 하드리셋 방법  (0) 2021.09.23
아두이노 키보드  (0) 2021.08.28
아두이노 LCD 1602  (0) 2021.07.16
posted by 모카쨩
2021. 8. 28. 17:18 아두이노

 

 

키코드 : https://www.arduino.cc/en/Reference/KeyboardModifiers

 

 

Due에서 사용가능

 

#include <Keyboard.h>
void setup() {
  
  Keyboard.begin();
  Serial.begin(9600);
  Serial.println("Start Arduino");
}
void KeyboardPressHuman(char key) 
{
    Keyboard.press(key);
    Serial.println("Press");
    delay(100+random(300));
    Keyboard.release(key);
}

void loop() {
    delay(6500+random(1000));
    KeyboardPressHuman(KEY_F12);
}

'아두이노' 카테고리의 다른 글

아두이노 키코드 모음  (0) 2021.09.17
아두이노 LCD 1602  (0) 2021.07.16
아두이노 헤더 예제  (0) 2021.07.15
posted by 모카쨩
2021. 7. 16. 11:19 아두이노

 

 

 

 

 

 

https://github.com/johnrickman/LiquidCrystal_I2C

 

johnrickman/LiquidCrystal_I2C

LiquidCrystal Arduino library for the DFRobot I2C LCD displays - johnrickman/LiquidCrystal_I2C

github.com

 

 

 

 

 

 

하고 아두이노를 껐다킨다

 

 

 

#include<Wire.h>
#include<LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); //기기에 따라 27이 아닌 3F이다.
//LiquidCrystal_I2C lcd(0x27,20,4); //2004의 경우
   
void setup()
{
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("Hello, world!");
  lcd.setCursor(0,1);
  lcd.print("LCD Test");
}

 

 

글씨가 안보인다고? 뒷면의 십자나사홈을 돌려서 밝기를 조절해준다

너무 밝으면 백그라운드까지 밝아져서 안보이고 너무 어두우면 글씨가 안 나온다

 

그래도 안 보이면 위의 27을 3F로 바꿔준다

3.3v로 해도 보이지만 너무 흐리므로 5v로 넣어주자

Due의 경우 SCL을 21번에 SDA를 20번으로 사용한다

 

 

 

 


//가운데 정렬
void LCDPrintCenter(String message,int width) 
{
  int iMax=(width/2)-message.length()/2;
  for(int i=0;i<iMax;i++)
  {
    message=' '+message;
  }
  for(int i=message.length();i<width;i++)
  {
    message=message+' ';
  }
  lcd.print(message);
}

//왼쪽 정렬
void LCDPrintLeft(String message,int width) 
{
  int iMax=width-message.length();
  for(int i=0;i<iMax;i++)
  {
    message=message+' ';
  }
  lcd.print(message);
}

//오른쪽 정렬
void LCDPrintRight(String message,int width) 
{
  int iMax=width-message.length();
  for(int i=0;i<iMax;i++)
  {
    message=' '+message;
  }
  lcd.print(message);
}
 
 
 
 
 //예제
 lcd.setCursor(0,0);
  String message="Unknown";
  switch(mode)
  {
    case Start:
      message="Start";
      break;
    case Loop:
      message="Loop";
      break;
  }
  int lcdWidth=20;
  
  //왼쪽정렬
  LCDPrintLeft(message,lcdWidth);
  
  //가운데정렬
  LCDPrintCenter(message,lcdWidth);

글씨 바꿀때 해당 라인을 초기화할 필요가 있을경우

 

 

 

 

 

 

 

 

 

 

'아두이노' 카테고리의 다른 글

아두이노 키보드  (0) 2021.08.28
아두이노 헤더 예제  (0) 2021.07.15
자주쓰는 아두이노 코드 모음  (0) 2021.06.21
posted by 모카쨩
2021. 7. 15. 00:21 아두이노

 

 

본문코드

#include "HeaderTest.h"
void setup() {
  WireBegin();
  Serial.begin(9600);
}

void loop() {
    Serial.println("t:"+String( ReturnTwo()));
  delay(1000);
}

 

 

헤더코드

//HeaderTest.h
#include<Wire.h>

long _time = millis();
long _time_save = _time;

void WireBegin()
{
  Wire.begin();      
}
int ReturnTwo()
{
  return 2;
}

'아두이노' 카테고리의 다른 글

아두이노 LCD 1602  (0) 2021.07.16
자주쓰는 아두이노 코드 모음  (0) 2021.06.21
byte to hex  (0) 2021.02.23
posted by 모카쨩

  • total
  • today
  • yesterday

Recent Post

저사양 유저용 블로그 진입