11월, 2018의 게시물 표시

4x4x4(입체) cube 만들기

이미지
필요 물품) 1. led 64개 (불량 있을수도 있으니 최소 70~ 80개 구비) 2. 강선 3. pcb기판 4. 아두이노 4x4x4 cube를 제작한 모양이다. 다 만들고 납땜을 완료한 후의 사진이며, 그 이전의 사진은 깜빡하고 찍지 못하였다. led를 일일히 납땜하는 데에 어려움이 있기에 아래와 같은 led를 끼울 수 있는 판을 만들고 구멍에 led를 끼워 넣어 납땜하는 데에 좀더 쉽게 할 수 있도록 하였다. 저항을 연결하여 납땜한 모습이다. 개인적으로 저항을 달지 않는것을 추천한다.(led가 많이 켜질수록 전력이 모자라 led 밝기가 약해지는 모습을 보인다.) 작동영상)

PCB 실습_220V를 5V로 전압 감하

이미지
교류 전압 220V를 아두이노가 사용가능한 직류 5V로 전압감하 회로 만들기 회로도) 아래는 납땜 완료후) 220V인가시 이상없이 5V가 안정적으로 공급되며 아두이노가 정상 작동한다. 전에 사용한 릴레이도 같이 붙여 이용가능 할것이다.

PCB실습_발진회로

이미지
PCB 기판에 다이오드,트랜지스터,캐패시터,LED를 이용하여 발진주기 0.3초를 가지는 회로를 만들어 보았다. OrCAD Capture를 이용하여 우선 회로를 작성하였다. OrCAD PCB Editor를 이용해 PCB 기판에 회로 작성. 실제 구동 사진과 동영상

ESP8266과 릴레이 사용하여 전구 점등

이미지
 아두이노를 다룰때 아두이노에 ESP8266을 장착하여 와이파이로 앱인벤터와 스마트폰으로 대상과 통신을 하는 방법은 예정에도 다루어 보았었다.  이번에는 아두이노가 아닌 ESP8266에 코드를 직접올려, 부트로더를 하여 아두이노를 통하는게 아닌 ESP8266과 직접적으로 통신을 사용했다. ➤필요 물품 ESP8266 릴레이 USB ➤코드 #include <ESP8266WiFi.h> const char* ssid = "AR403"; const char* password = "itedu203"; // Create an instance of the server // specify the port to listen on as an argument WiFiServer server(80); void setup() {   Serial.begin(9600);   delay(10);   // prepare GPIO2   pinMode(2, OUTPUT);   digitalWrite(2, 0);   // Connect to WiFi network   Serial.println();   Serial.println();   Serial.print("Connecting to ");   Serial.println(ssid); ////////////   WiFi.mode(WIFI_STA);//ESP8266WiFilType.h에 존재 ////////////   IPAddress ip(192,168,0,17);//사용할 ip주소   IPAddress gateway(192,168,0,1);//게이트웨이 주소   IPAddress subnet(255,255,255,0);//서브넷 주소   WiFi.config(ip,gateway,subnet); ////////////   WiFi.begin(ssid, password); ///////////

PLC_104번_교대 점멸 회로

이미지
1. x0을 on하면 y0은 2초 on, 1초 off 간격으로 Flicker된다. 2. y1은 2초 후에 1초 on, 2초 off 간격으로 Flicker된다. 3. y2는 3초 후에 지속 점등 된다. 4. 모든 출력은 x1이 on되면 초기화 된다.

PLC_103번_타이머 응용회로

이미지
1. x0를 on하면 y0,y1,y2가 3초 간격으로 on된다. 2. x1을 on하기 전까지 회로는 무한 반복된다. 3. x1을 on하면 회로는 초기화 된다.

PLC_102번_타이머 응용회로

이미지
1. x0를 on하면 y0 on된다. 2. 2초 후 y1이 on되고, 4초후 y2가 on된다. 3. x1을 on하면 y2가 즉시 소등되고, 2초후 y1소등, 4초후y0가 소등된다. 그리고 회로는 초기화 된다.

PLC_101번_플리커 응용회로

이미지
1. x0를 눌렀다 떼면 y0가 on, off를 1초 간격으로 10회 반복한다. 2. 10회 점멸 후, y0가 소등되는 시점에서 y1이 3초간 on 되다가 off되면서 회로는 초기화 된다. 3. 동작 중에 x1을 누르면 회로는 즉시 리셋된다.

PLC_100번_카운터 응용 회로

이미지
1. x0를 두 번쨰 누를 떄 y0 점등 2. x1을 두 번째 누를 때 y0 소등되며 1초 간격으로 점멸 3. x2을 누르는 순간y0는 소등되고y1이 2초 on, 1초 off로 3번 점등 되었다가 소등 되며 리셋 4. y2는 y0 점등 될 때 함께 점등하고 y1이 소등할 때 함께 소등

PLC_99번_카운터 응용회로

이미지
1. x0을 누르는 동안은 y0 점등 2. x0를 네 번째 누르는 순간 y1이 점등 3. x0를 네 번째 눌렀다 떼는 순간 y2가 점등 4. x1을 누르면 y1,y2가 소등되며 리셋

PLC_98번_타이머 응용회로

이미지
1. x0버튼을 2번 on하면 y0점등 2. y0 2초 점등 후 소등. 1초 후에 y1이 2초 점등. 1초 후에  y2 2초 점등. 3. 2초 점등 1초 소등을 반봅 4. y0 - y1 -y2 - y1 - y0 순서대로 점등 5. reset버튼 x1 입력되기 전까지 출력은 반복된다.

PLC_97번_카운터 응용

이미지
1. x0 두번 누르면 y0 점등 2. x1을 두번 누르면 y0소등되며 y1점등 3. x2를 두번 누르면 y1이 소등되며 y2가 5초동안 점등 후 소등 4. 회로 반복 * 2개의 카운터와 1개의 타이머 * 1개의 카운터와 1개의 타이머

ArduinoUno(Atmega328P), LM35(온도센서)를 이용해 LCD에 Text 나타내기

이미지
조건) 1. 온도 센서를 이용하여 값을 읽어온다. 2. 읽어온 값을 ADC(Analog to Digital Converter)를 사용해 준다. 3. 변환된 값을 이용하여 온도와 변환된 값을 LCD에 출력해 준다. ➤ 실제 제품에 올리기 전 시뮬레이션으로 점검하기 실제 Atmega328P에 올리기 전 AVR studio 4 와 Proteus에서 먼저 실행하여 이상이 없는지 확인을 했다. ADCSRA |= 1<<ADEN | 1<<ADIE | 1<<ADATE | 6; →ADCSRA에서 설정해 주며 ADC를 사용하는데 세부 설정을 해준다. ADEN(ADC Enable), ADSC(ADC Start Conversion)(뒤에 main 부분에 따로 설정해 두었다.), ADATE(ADC Auto Trigger Enable), 6(ADPSn 과 연관되어 있으며 6(0b110) 으로 설정해 64분주로 설정했다.) ADMUX |= 1<<REFS0; →ADMUX에서 8번째와 7번째 비트인 REFS1, REFS0을 [01]로 설정하여 Vcc를 사용하고 Vref에는 캐패시터를 연결하여 기준 전압을 설정해 주었다. 또한, 나머지 비트는 0으로 셋팅되어 있기에 따로 설정할 필요 없이 ADC0를 사용하면 된다. (main 부분 코딩) spirintf() : LCD에 올릴 문자를 작성해 주었다. LCD_str_write() : LCD에 문자열을 작성하는 부분이며 첫 번째는 몇 번째 행인지 두 번째는 몇 번째 열인지 마지막은 어떤 문자열을 올릴지 나타낸다. (컴파일 하여 시뮬레이션 결과 문제 없이 작동하는 모습) ➤ 실제 Atmega328P에 업로드 실제 Atmega 328P에 업로딩시에는 Atmel Studio 7.0을 사용하였다. AVR studio에서 작성한 코드를 그대로 가져왔기에 달라진 부분은 없다. AVR studio에서 작성 시 LCD에 실수를 표현