본문 바로가기

Tip !!!

(56)
Arduino Pro Mini 핀맵
ESP8266 SPIFFS 메모리 (Wemos D1 R1 mini ) ESP8266은 내부 flash메모리가 없고 따로 외부에 EPPROM을 가지고 있다.( 전원 없어 도 안 지워짐) 이 EPPROM(512K 1M 4M 사이즈가 있다.)을 마치 디스크처럼 사용 할수 있는 것이 SPIFFS다. 사용할 SPIFFS 사이즈는 아두이노 메뉴-> 툴-> flash사이즈에서 고르면 된다. 더 많은 정보(영문)는 여기를 클릭 하세요. 사 용 예 제 #include void setup() { Serial.begin(115200); SPIFFS.begin(); writeFile("/sample.txt","Sample 텍스터 입니다."); Serial.println( readFile("/sample.txt") ); SPIFFS.remove("/sample.txt"); } void loop(..
아두이노 EEPROM EEPROM (Electrically Erasable Programmable Read-Only Memory) 전기적으로만 지울 수 있는 ROM. 전기를 노출시킴으로써 한 번에 1 바이트씩만 지울 수 있기 때문에 플래시 메모리와 비교하면 매우 느리며 반복 기록 횟수에 제한이 있는데 약 10만 번 정도이다.(위키백과) 전원이 없어도 값이 보존 된다. 그래서 프로그램의 환경변수 저장에 Good.... 보드 EEPROM용량 Uno 1KB Mega 4KB Leonardo 1KB ESP8266 EEPROM 은 실제로는 없고 외부에 있는 SPIFF 플래쉬 메모리의 일부를 사용 4KB 1KB=1024Byte 사 용 예 시 #include void setup() { String str="EEPROM 테스트용"; Seri..
USB host shield 사용시 osc did not start 에러 처음 USB host shield를 구입한 후 예제를 실행하니 osc did not start 라는 문구만 나타나고 키보드, 마우스를 인식 못하는 문제가 발생했다. 마우스에 불이 안 들어 오는것을 보니 전원 문제 인 듯도 하구................. 3~4시간 보드를 교체하고 쉴드도 교체해 가며 여러 방법을 시도 헸지만 실패했다. 그러다 유투브에서 한 동영상을 발견했고 그대로 해보니 이것도 안됐다. 그래도 힌트는 얻었다. 대충 전원 문제라는생각으로 여러 시도 끝에 성공했다. 우선 납땜이 필요하다. 따라서 보드를 망칠 수도 있다는 것을 주의 해야한다. 아래 사진의 빨간색 사각형안의 3군데 회로를 납땜으로 연결 하면 되었다. 노란색은 연결하면 안되는 경우도 생겼다. 납땜을 해도 안되면 납땜부위를 다시..
Wemos mini 핀맵 Label GPIO Input Output Notes D0 GPIO16 no interrupt no PWM or I2C support HIGH at boot used to wake up from deep sleep D1 GPIO5 OK OK often used as SCL (I2C) D2 GPIO4 OK OK often used as SDA (I2C) D3 GPIO0 pulled up OK connected to FLASH button, boot fails if pulled LOW D4 GPIO2 pulled up OK HIGH at boot connected to on-board LED, boot fails if pulled LOW D5 GPIO14 OK OK SPI (SCLK) D6 GPIO12 OK..
스위치 풀다운 풀업 회로 풀다운 스위치 저항 10K을 연결 안하면? off상태에서 잡음이 입력되어 0,1이 무작위로 입력된다. 버튼을 누르면 1 , 아니면 0 선언 : pinMode(핀번호, INPUT); 풀업 스위치 따로 저항이 필요 없다.( 아두이노 자체에서 처리) 버튼을 누르면 0 , 아니면 1 선언 : pinMode(핀번호, INPUT_PULLUP);
블루투스 모듈 연결시 주의점 ( 전압 3.3V 조정 ) 블루투스 RX에는 3.3V가 들어 가야한다. 아두이노 TX에서는 5V 신호가 나온다. 이것을 직접 연결 하여 장시간 사용 하면 블루투스가 망가진다. 처음에는 몰라서.... 그다음은 설마 하여 (귀차니즘) 10개정도 망가졌다 ㅠㅠ .. AT커맨드 모드로 세팅시(잠깐 사용)를 제외 하고는 전압 강화를 꼭 하자. 5V * ( 2 /3 ) = 3.3V 2K / (1K +2K) 5V * ( 1 /3 ) = 1.7V 물론 블루투스 TX신호는 3.3V로 나오지만 아두이노 RX는 3V이상이면 인지 하기 때문에 전압 조절이 필요 없다. ( 조절 하기도 힘들고......) 전압도 강하하고 하드웨어 시리얼 사용시 업로드 스위치도 사용 할수 있는 회로도
가변저항
YP-05 FTDI FT232L USB to TTL UART
보드에 따른 SoftwareSerial 가능 핀 보드 Chip 가능핀번호 우노 Uno ATmega328 모든 핀 가능 메가 Mega ATmega2560 10,11,12,13,14,15, 50,51,52,53, 62,63,64,65,66,67,68,69 레오나로드 ATmega32u4 8,9,10,11, 14,15,16
USB 호스트 쉴드 2.0, Arduino UNO MEGA 연결 가능 장치 HID장치 : 키보드, 마우스, 조이스틱 등 게임 컨트롤러 : 소니(Sony) PS3, 닌텐도 Wii, xbox360 USB - 시리얼 변환기 : FTDI, PL-2303, ACM 및 특정 휴대전화 디지털 카메라 : Canon EOS, Powershot, Nikon DSLR 및 P&S, PTP 대용량 저장 장치 : USB 스틱, 메모리 카드 판독기, 외장하드 드라이브 블루투스 동글. 라이브러리 다운로드
Wemos R1 D1 보드 핀맵
Arduino Leonardo Tech specs MICROCONTROLLER ATmega32u4 OPERATING VOLTAGE 5V INPUT VOLTAGE (RECOMMENDED) 7-12V INPUT VOLTAGE (LIMITS) 6-20V DIGITAL I/O PINS 20 PWM CHANNELS 7 ANALOG INPUT CHANNELS 12 DC CURRENT PER I/O PIN 40 mA DC CURRENT FOR 3.3V PIN 50 mA FLASH MEMORY 32 KB (ATmega32u4) of which 4 KB used by bootloader SRAM 2.5 KB (ATmega32u4) EEPROM 1 KB (ATmega32u4) CLOCK SPEED 16 MHz LENGH 68.6 mm WIDTH 53...
하드웨어 시리얼 사용시 업로드 스위치 만들기 블루투스를 아두이노의 하드웨어 시리얼에 연결 하여 사용시 프로그램을 업로드 하려면 어느 핀을 제거 하여야 할까? 몽땅...... Ok 전원핀 .....아님 답은 블루투스의 TX핀 ( 아두이노의 RX핀)만 제거 하면 됨 위의 그림처럼 그사이 스위치를 달아 업로드시 사용하면 편리합니다.
Timer interval 0 로 설정하면 ? 앱인벤트의 Timer Interval을 0로 설정하면 실제로는 얼마만에 반응을 할까? 설정값보다 더 길게 나타남. 프로그램 크기와 실행중인 다른 앱에 따라 더욱 길어진다 아래의 프로그램에서 GUI를 없애고 측정하면 30전후로
TFT LCD Arduino Mega Shield Model RS WR CS RST 21 38 39 40 41 UTFT(byte model, int RS, int WR,int CS, int RST, int SER=0); myGLCD(21,38,39,40,41);
아두이노 Uno
아두이노 Mega 통신 핀 Serial( UART ) RX TX Serial 0 1 Serial 1 19 18 Serial 2 17 16 Serial 3 15 14 I2C ( Wire.H ) 비교 Uno SDA 20 A4 SCL 21 A5 SPI ( SPI.H ) MOSI 51 11 MISO 50 12 SCK 52 13 SS 53 10 소프트시리얼 가능핀 10,11,12,13,14,15, 50,51,52,53, 62,63,64
TFT LCD 3.5 인치 Library 다운로드 파일 압축풀기를 하면 4개의 압축파일이 생김 4개의 압축파일은 압축풀기를 하지 마시고 자신의 아두이노에 설치 안된 라이브러리만 다음과 같이 각각 설치 하세요. 아두이노 IDE 메뉴에서 스케치- > 라이브러리 포함하기 -> zip 포함하기를 선택 하여 추가 합니다.
L293D shield 핀맵 연결 핀 (예시) M1 M2 사용시 이용 가능핀 (예시) M3 M4사용시 이용 가능핀 Servo1,2 D2 다른 곳에 가능 다른 곳에 가능 M2 D3 X 다른 곳에 가능 ALL D4 X X M3 D5 다른 곳에 가능 X M4 D6 다른 곳에 가능 X ALL D7 X X ALL D8 X X Servo2 D9 다른 곳에 가능 다른 곳에 가능 Servo1 D10 다른 곳에 가능 다른 곳에 가능 M1 D11 X 다른 곳에 가능 ALL D12 X X Not Use D13 다른 곳에 가능 다른 곳에 가능 All Analog Pin 모두 사용 가능 모두사용가능 모터 M1 M2 M3 M4 서보모터 Servo1 Servo2를 사용 할수 있는 모터 드라이브입니다. 여기서 사용 안할 모터의 핀은 다른 곳에 사용 하시면 됩니..
TFT LCD 3.5 인치 SD카드 쉴드 Pin Map TFT LCD 사용 Pin Map입니다. 아두이노 Uno의 경우 다른곳에 사용 가능한 핀은 A5 핀 SD카드를 사용 안하면 10, 11, 12, 13 핀 사용가능 핀이 부족하면 Mega사용하면 됨 Mega 사양 - 핀 걱정 안해도 됨 다만 SD카드를 사용 하려면 Uno와 SPI핀번호가 달라 다음 중 하나의 방법으로 해야 한다. 쉴드를 아두이노 Mega에서 SD카드 사용을 위한 방법(Uno와 SPI핀 다름) Uno의 SPI핀번호에 해당하는 핀을 SPI핀과 연결함 번거롭다(납땜이 필요) 10,11,12,13핀 사용불가 핀헤드를 사용 하는 방법 (추천) 납땜 필요 없음 10,11,12,13핀 사용 가능 SD모듈을 따로 구입하여 사용한다. 얼마 안함 저렴함.( 추천 ) 핀헤드 사용 : 싈드와 Mega보드 연결 ..
배열 늘리기 Array.Resize( ref 배열이름 , 새로운 크기 ); using System; namespace ConsoleApp2 { internal class Program { public struct Font { public string s; public short[] f; } static void Main(string[] args) { Font[] font = new Font[1]; 방 1칸 font[0].s = "한"; font[0].f = new short[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; Array.Resize(ref font, 2); 방 2칸 Font f = new Font("국", new short[] { 0, 1, 2, 3 }); font[1] = f; Cons..
DataGridView의 Row 갯수는? DataGridView의 Row 갯수는? DataGrid이름.Rows.Count 가 아님 DataGrid이름.Rows.Count - 1 이에요. 마지막 입력이 안된 null Row를 포함한 갯수라 -1해야 실제 갯수입니다. 그리고 마지막 Row의 인덱스는 DataGrid이름.Rows.Count -2 입니다 if ( dataGrid.Selected.Rows[0].index == dataGrid.Rows.Count -2 ) 선택된 Row가 마지막 Row인가?
검색결과 레코드(Row) DataGrid에 모우기 위의 그림처럼 검색에 해당하는 Row를 모아 DataGridView에 보여주기 DataTable과 연결된DataGridView는 프로그램 코드로 삽입,삭제를 못한다. 그래서 Table에 직접 해야 한다. 우선 Table 복사판을 만들고 일치 히지 않는 Row를 제거한후 DataGrid와 복사본을 연결 시키면 일치하는 Row만 있는 화면을 볼수 있다. 꼭 복사판에 작업해야 원본이 보존된다. private void btSerch_Click(object sender, EventArgs e) { if (txtSerch.Text == "") return; // 빈값이면 return int rowIndex = 0; // Row Index 첫번째 Row DataTable tempDt= new DataTable(); ..
Table에 연결된 DataGridView Row 이동방법 바운딩된 DataGrid는 삭제 삽입이 안됩니다. 그래서 Table에서 삭제 삽입을 해야 합니다. 그러면 바로 DataGridView에도 반영됩니다. 다음의 코드는 Row를 위로 아래로 이동 시키는 코드 예입니다. public partial class Form1 : Form { DataSet ds; // 작업 DataSet DataTable dt; // 작업 Data Table // DataGridView의 이름 dataGrid private void btUp_Click(object sender, EventArgs e) { int index = dataGrid.SelectedRows[0].Index; // 선택된 Row의 인덱스 if (index dataGrid.Rows.Count-2) return; /..
DataGridView에서 선택된 Cell 처리 private void dataGrid_CellContentClick(object sender, DataGridViewCellEventArgs e) { txtSerch.Text = dataGrid.SelectedCells[e.ColumnIndex].Value.ToString(); }
바코드와 FireDB 바코드를 스캔하면 FireDB에 일치 하는 것이 있어면 제품명을 출력하고 없으면 제품명을 기입후 등록버튼으로 등록한다. FireDB 저장 : 호출( 값저장하기 ) 1 블록 FireDB 읽기 : 호출( 값 가져오기) 실행( 값을 받았을때) 2 블록 FireDB 지우기 : 호출( 태그리스트 요구) 삭제( 태그리스트를 받았을 때 ) 2 블록 CloudDB, TinyWebDB 도 같음 // 휴대폰이 아닌 외부Serve에 DB가 있는 경우 TinyDb는 바로 1블록으로 // 휴대폰에 저장됨 TinyWebDB는 한글 지원이 안되는 듯...???
앱인벤터 블루투스 연결법 블루투스를 이용하여 아두이노 나노의 릴레이를 조작하여 24V DC모터를 제어하는 코드의 블루투스 연결 코드입니다. BT_연결상태 : 레이블 (Label) BT_연결 : 목록선택상자 ( ListPicker) BT_종료 : 버튼 ( Button ) BlutoothClient1 : 블루투스클라이언트 목록선택상자에 연결 가능한 블루투스 목록을 가져옴 목록선택상자를 클릭하면 선택된 블루투스에 연결하기 연결이 성공하면 BT_종료 보이기 BT_연결은 안보이기 연결상태 라벨은 OnLine으로 종료버튼을 누르면 연결을 끊고 다시 연결대기 상태로
폼 닫기 취소 시키기 form closing cancel 폼닫기 버튼,메뉴 등등으로 form closing 될때 취소 시키는 법 private void frmMain_FormClosing(object sender, FormClosingEventArgs e) { FormYesNo frm = new FormYesNo(); DialogResult re = frm.ShowDialog(); if (re == DialogResult.Cancel) e.Cancel = true;// Closing 취소시키고 return // 아래문 실행 안됨 if (re == DialogResult.Yes) btSave_Click(null, null); // 저장하기 }//func
리치텍스트박스 RichTextBox에서 행 단위로 색깔 바꾸기 리치텍스트박스.SelectionColor = Color.Yellow; 리치텍스트박스.AppendText("텍스트 내용" + "\r\n");