산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

많은 릴레이를 제어하는 ​​NeoPixel 광커플러가 있는 Arduino

구성품 및 소모품

SparkFun LilyPad 레인보우 LED(7색 스트립)
또는 이와 유사한 것(Led 스트립 5m/롤 DC5V ws2812b 300led 개별 주소 지정 가능 60leds/m 5050 RGB에서 잘라낸 것) ), 다양한 공급업체
× 1
저항 10k 옴
27k 옴
× 4
포토 저항기
LDR(Light Dependent Resistor)이라고도 함 https://en.wikipedia.org/wiki/Photoresistor
× 4
RobotGeek 릴레이
또는 https://www.conrad.nl/p/relaiskaart-5vdc-4-voudig- voor-arduino-raspberry-pi-etc-095841
× 4
LED 램프
× 1
Arduino UNO
모든 Arduino 유형을 사용할 수 있습니다. 이 애플리케이션에서는 Node MCU ESP32를 사용했습니다.
× 1

필요한 도구 및 기계

납땜 인두(일반)
공통 도구
일반 가정/작업장에서 사용 가능

앱 및 온라인 서비스

영화

이 프로젝트 정보

이 프로젝트는 단일 Arduino 출력 핀에서 여러 릴레이 또는 기타 액추에이터를 제어하는 ​​방법에 관한 것입니다.

이 솔루션은 사용 가능한 Arduino 출력 핀의 양이 충분하지 않고 릴레이와 같은 더 많은 액추에이터를 단일 출력 핀에서 병렬로 제어해야 하는 일반적인 상황에 사용할 수 있습니다.

작동 원리는 여러 NeoPixels(WS2812B 컨트롤러 칩이 있는 SMD5050 LED)의 LED 스트립 사용을 기반으로 합니다. 모든 픽셀은 LDR(Light Dependent Resistor)과 함께 결합되어 DIY 광커플러를 생성합니다(원하는 만큼, LED 스트립 길이에 의해서만 제한됨, 예:300픽셀 및 사용 가능한 5V 전원 공급 장치). 이러한 방식으로 직렬에서 병렬로의 변환이 생성됩니다(1에서 다수로)

모든 개별 LED는 하나의 동일한 Arduino 출력 핀에서 지정됩니다. 각 LDR(27kOhm 저항과 직렬로)은 5V 릴레이에 연결됩니다. 이러한 방식으로 Adafruit NeoPixel 라이브러리를 사용하여 1개의 Arduino 출력 PIN에서 많은 NeoPixel/LDR 조합을 제어할 수 있습니다. 릴레이 대신 LDR을 모든 회로에 대한 입력으로 사용하여 다른 액추에이터 장치를 연결할 수도 있습니다.

더 큰 계획의 일부인 이 프로젝트의 경우 ESP32(NodeMCU)가 사용됩니다. 그러나 일반 Arduino Uno(또는 거의 모든 다른 모델)가 작업을 수행합니다.

1단계:NeoPixel 광커플러 만들기

DIY 광커플러는 다음 재료로 만들어집니다.

<울>
  • 10개의 WS2812 LED로 구성된 LED 스트립 조각(긴 스트립에서 잘라낸 것) 4개만 실제로 프로젝트에 사용됨
  • 진회색 거품 조각
  • 브레드보드 스트립
  • 검은 오리 테이프
  • 참고:점의 분리는 LED의 분리와 같습니다.

    "빛 누화를 피하기 위해 각 개별 LED의 빛을 다른 LED의 LDR과 분리하는 것이 중요합니다. ." 실제로 이것은 거의 불가능하므로 "켜짐" 상태의 각 LED에서 방출되는 빛의 양이 소프트웨어에서 낮은 수준으로 설정되었습니다.

    사용된 LED 스트립은 10개의 LED 길이이지만 이 프로젝트에서는 4개의 LDR과 함께 4개의 픽셀만 사용합니다(간단함을 유지하기 위해)

    2단계:전자 설정

    브레드보드 설정에서는 ESP32(NodeMCU)를 사용했지만 모든 Arduino가 작업을 수행할 수 있습니다.

    Fritzing으로 만든 회로도는 다음과 같습니다.

    실제로는 다음과 같습니다.

    보시다시피 1개의 출력 핀만 4개의 ​​릴레이를 병렬로 제어하는 ​​데 사용됩니다. 이 숫자는 최대 300까지 올라갈 수 있습니다! (5m 길이의 스트립에서 사용 가능한 LED 수만큼).

    ESP32 장치는 3.3V 레벨(온보드 3.3V 전압 조정기)에서 작동하는 반면 5050 LED가 있는 LED 스트립은 5V에서 실행됩니다. ESP32에는 5V 전원이 공급됩니다(5V 어댑터 또는 5V의 USB 포트를 통해 전원 은행). NeoPixel LED는 ESP32의 5V 핀에서 직접 5V 공급을 받으며 사용되는 릴레이도 5V 유형입니다.

    이 예에서는 4개의 옵토커플러 회로가 각각 하나의 230V 램프에 연결된 4개의 릴레이를 제어하는 ​​데 사용됩니다.

    사용된 출력 핀은 GPIO PIN 21이고 릴레이는 픽셀 번호 1, 2, 3, 4를 통해 제어됩니다.

    3단계:소프트웨어 만들기

    Arduino Sketch의 루프 기능은 간단하며 각 릴레이를 제어하여 램프를 전환하는 다양한 패턴을 표시하는 여러 "for" 루프로 구성됩니다.

    특정 릴레이를 제어하려면 루프 코드 내에서 다음 함수가 호출됩니다.

    무효 ControlRelais(int RelaisNo, bool RelaisState) { strip.setPixelColor(RelaisNo, RelaisState*15, RelaisState*15, RelaisState*15); // RelaisNo에 속한 LED 켜기/끄기 strip.show(); Serial.print(" RelaisNo "); Serial.print(RelaisNo); Serial.print(" ="); Serial.println(RelaisState); } 

    실제로 이 기능은 특정 LED를 켜거나 끄는 것뿐입니다.

    LED 주소는 해당 릴레이 번호에 해당합니다. LED는 LDR을 통해 릴레이를 트리거하기에 충분할 정도로 낮은 조명 수준에서 켜져 있으므로 빛 공해를 방지합니다(위에서 "빛 누화"라고도 함).

    모든 노력과 구체적인 스케치의 결과는 다음 영화에 나와 있습니다.

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • 자체 제작된 NeoPixel 광커플러를 통해 여러 릴레이를 제어하기 위한 스케치
  • 자체 제작 NeoPixel 광커플러Arduino를 통해 여러 릴레이를 제어하기 위한 스케치
    이 스케치는 1개의 ARDUINO 출력 핀에서 제어되는 NeoPixels로 만든 여러 옵토커플러를 통해 여러 릴레이를 제어하는 ​​방법을 보여줍니다.
    /* 단일 Arduino 출력 핀에서 여러 Relais 또는 기타 액추에이터를 제어하기 위한 이 코드는 Pierre가 개발 및 생산했습니다. Pennings(2018년 12월) 이 솔루션은 사용 가능한 Arduino 출력 핀의 양이 충분하지 않고 Relais와 같은 더 많은 액추에이터를 병렬로 제어해야 하는 일반적인 상황에 사용할 수 있습니다. 작동 원리는 여러 Neopixel의 스트립을 사용하는 것을 기반으로 합니다. (WS2812B 컨트롤러 칩이 있는 SMD5050 LED) 모든 픽셀은 LDR(Light Dependent Resistor)과 함께 결합되어 DIY 광커플러 생성 모든 개별 LED는 하나의 동일한 ARDUINO 출력 핀과 LDR(27kOhm 저항과 직렬로 ), 5V Relais에 연결됩니다. 이러한 방식으로 Adafruit Neopixel 라이브러리를 사용하여 1개의 Arduino 출력 PIN에서 많은 Neopixel/LDR 조합을 제어할 수 있습니다. 더 큰 계획의 일부인 이 프로젝트의 경우 ESP 32(NodeMCU)가 사용되지만 일반 ARDUINO UNO(또는 거의 모든 다른 모델)가 작업을 수행합니다(물론 코드의 설정을 조정해야 합니다. 예를 들어 핀 할당이 다르기 때문에) ESP 32 장치는 3.3V 레벨(온보드 3.3V 전압 조정기)에서 작동하는 반면 5050 LED가 있는 LED 스트립은 5V에서 실행됩니다. ESP 32에는 5V 전원이 공급됩니다. 5V 어댑터 또는 5v 파워뱅크의 USB 포트) Neopixel LED는 ESP 32의 5V 핀에서 직접 5V 전원을 공급받으며 사용된 Relais도 5V 유형입니다. 이 예에서는 10개의 LED로 구성된 LED 스트립이 사용되며, 단순성을 위해 각각 하나의 230V LEDLamp에 연결된 4개의 Relais를 제어하는 ​​4개의 광커플러 회로만 만들어집니다. 사용된 출력 핀은 GPIO PIN 21이고 RELAIS는 픽셀 번호 1,2,3,4를 통해 제어됩니다. 이 코드는 GPL3+ 라이선스에 따라 라이선스가 부여됩니다.*/#include #define NUM_LEDS 10////// ////////////////////////////////////////// GPIO 핀 초기화 int RelaisPin =21; // 핀 21은 제어 데이터(0 -3.3 V)를 Relaisint에 전송합니다. RelaisNo =0; // 제어할 해당 Relais의 변수bool RelaisState =false;int r =0;Adafruit_NeoPixel strip =Adafruit_NeoPixel(NUM_LEDS, RelaisPin, NEO_RGB + NEO_KHZ800);///////////////// ////////////////////////////////// 뒤에 오는 설정 코드는 "전원 켜기" 이후에 한 번 실행됩니다. RESETvoid setup() { Serial.begin(115200); 핀모드(릴레핀, 출력); // 출력으로 RelaisPin을 초기화합니다. strip.begin(); // 모든 LED를 "꺼짐"으로 초기화 for (int t =0; t <10; t++) { strip.setPixelColor(t, 15, 15, 15); // 전원을 켠 후 스트립의 모든 LED가 한 번 테스트됩니다. strip.show(); // WS2812 LED 스트립의 색상 순서는 R,G,B 지연(500)입니다. strip.setPixelColor(t, 0, 0, 0); // 그리고 다시 꺼짐 }}///////////////////////////////////////////// ///////// 뒤에 오는 루프 코드는 "전원 끄기" 또는 RESETvoid loop(){ for (int r =1; r <5; r++) // 4개의 Relais를 켤 때까지 반복적으로 실행됩니다. 형식 1에서 4까지 차례로 계산 {지연(500); ControlRelais(r, true); 지연(500); ControlRelais(r, false); }for (int k =4; k> 0; k--) // 4 Relais를 차례로 켜기 형식 4 to 1 { delay (500); ControlRelais(k , true); 지연(500); ControlRelais(k, false); } for (int r =1; r <5; r++) // 패턴의 4개 릴레이 켜기 { for (int k =4; k> 0; k--) { delay (500); ControlRelais(r, true); ControlRelais(k , true); 지연(500); ControlRelais(r, false); ControlRelais(k, false); } }}///////////////////LOOP의 끝/////////////////////////// ////////////////////////////////////////////////////// /////////////////////////////////// 이하 Relais를 제어하기 위한 함수(루프 내에서 호출)를 따릅니다. 무효 ControlRelais (int RelaisNo, bool RelaisState) { strip.setPixelColor(RelaisNo, RelaisState*15, RelaisState*15, RelaisState*15); // RelaisNo에 속한 LED 켜기/끄기 strip.show(); Serial.print(" RelaisNo "); Serial.print(RelaisNo); Serial.print(" ="); Serial.println(RelaisState); }

    회로도

    단일 Arduino 핀에서 여러 릴레이 또는 기타 액추에이터를 제어하기 위한 설정 neopixel_optocoupler_relais__hNIrhGIMtD.fzz

    제조공정

    1. 실제 센서로 효과 제어
    2. 비행 시뮬레이터용 Arduino가 있는 LCD 패널
    3. FS2020용 Arduino가 있는 스위치/LED 패널
    4. NeoPixel Ring으로 재미있는 자이로스코프
    5. 스마트 블라인드
    6. Bluetooth가 탑재된 Arduino로 LED 제어!
    7. Arduino를 사용한 간단한 장애물 센서
    8. Arduino 및 Android 기기로 Roomba 로봇 제어
    9. Arduino Quadruped
    10. Arduino 및 MPU6050으로 서보 모터 제어