제조공정
<메인 클래스="사이트 메인" id="메인">
이 튜토리얼에서는 Arduino를 사용하여 개별적으로 주소 지정이 가능한 RGB LED 또는 WS2812B LED 스트립을 제어하는 방법을 배웁니다. 자세한 내용은 다음 동영상을 보거나 아래에 작성된 튜토리얼을 참조하세요.
먼저 몇 가지 기본 예제를 통해 작동 원리를 설명한 다음 이 LED를 사용하는 정말 멋진 Arduino 프로젝트인 DIY 대화형 LED 커피 테이블을 살펴보겠습니다. 커피 테이블에는 WS2812B LED, 물체 감지를 위한 적외선 근접 센서, 맞춤형 Android 앱을 통해 색상을 제어하기 위한 HC-05 Bluetooth 모듈이 있습니다. 이 프로젝트는 실제로 저와 Creativity Hero YouTube 채널의 Marija가 공동 작업한 것입니다.
먼저 LED 스트립을 자세히 살펴보겠습니다. 초소형 WS2812B LED 드라이버 IC가 집적된 5050 RGB LED로 구성되어 있습니다.
3개의 개별 Red, Green, Blue LED의 강도에 따라 원하는 색상을 시뮬레이션할 수 있습니다.
이 LED의 장점은 Arduino 보드의 단일 핀으로 전체 LED 스트립을 제어할 수 있다는 것입니다. 각 LED에는 각 끝에 3개의 커넥터가 있습니다. 2개는 전원 공급용이고 1개는 데이터용입니다. 화살표는 데이터 흐름 방향을 나타냅니다. 이전 LED의 데이터 출력 패드는 다음 LED의 데이터 입력 패드에 연결됩니다. 스트립을 원하는 크기로 절단할 수 있으며 일부 와이어를 사용하여 LED의 거리를 둘 수 있습니다.
전원 공급에 관해서는 5V에서 작동하고 각 빨강, 녹색 및 파랑 LED는 약 20mA를 소모하거나 최대 밝기에서 각 LED에 대해 총 60mA를 소모합니다. Arduino가 USB를 통해 전원이 공급될 때 5V 핀은 약 400mA만 처리할 수 있고 배럴 전원 커넥터를 사용하여 전원을 공급할 때 5V 핀은 약 900mA를 처리할 수 있습니다.
더 많은 LED를 사용하고 LED가 소모하는 전류량이 위에서 언급한 제한을 초과하는 경우 별도의 5V 전원 공급 장치를 사용해야 합니다. 이러한 경우 두 개의 접지선을 서로 연결해야 합니다. 또한 해당 라인의 노이즈를 줄이기 위해 Arduino와 LED 스트립 데이터 핀 사이에 약 330옴의 저항을 사용하고 전원 공급 장치를 매끄럽게 하기 위해 5V 및 접지에서 약 100uF의 커패시터를 사용하는 것이 좋습니다. .
이제 예를 들어 위에서 설명한 대로 330옴 저항을 통해 Arduino에 연결되고 별도의 5V 전원 공급 장치로 전원이 공급되는 20개의 LED 긴 스트립을 사용하겠습니다. Arduino 프로그래밍을 위해 FastLED 라이브러리를 사용합니다. 이것은 WS2812B LED를 쉽게 제어할 수 있는 훌륭하고 잘 문서화된 라이브러리입니다.
아래 링크에서 이 예시에 필요한 구성요소를 얻을 수 있습니다.
다음은 첫 번째 예제의 Arduino 소스 코드입니다.
#include <FastLED.h>
#define LED_PIN 7
#define NUM_LEDS 20
CRGB leds[NUM_LEDS];
void setup() {
FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
}
void loop() {
leds[0] = CRGB(255, 0, 0);
FastLED.show();
delay(500);
leds[1] = CRGB(0, 255, 0);
FastLED.show();
delay(500);
leds[2] = CRGB(0, 0, 255);
FastLED.show();
delay(500);
leds[5] = CRGB(150, 0, 255);
FastLED.show();
delay(500);
leds[9] = CRGB(255, 200, 20);
FastLED.show();
delay(500);
leds[14] = CRGB(85, 60, 180);
FastLED.show();
delay(500);
leds[19] = CRGB(50, 255, 20);
FastLED.show();
delay(500);
}
Code language: Arduino (arduino)
설명: 따라서 먼저 FastLED 라이브러리를 포함하고, LED 스트립 데이터가 연결된 핀을 정의하고, LED 수를 정의하고, CRGB 유형의 어레이를 정의해야 합니다. 이 유형에는 3개의 빨강, 녹색 및 파랑 색상 채널 각각에 대해 3개의 1바이트 데이터 멤버가 있는 LED가 포함됩니다.
설정 섹션에서 위에서 정의한 매개변수로 FastLED를 초기화하기만 하면 됩니다. 이제 우리가 원하는 방식으로 LED를 제어할 수 있는 메인 루프입니다. CRGB 기능을 사용하면 Red, Green 및 Blue 색상의 세 가지 매개변수를 사용하여 모든 LED를 원하는 색상으로 설정할 수 있습니다. LED에서 변경 사항을 적용하려면 FastLED.show() 함수를 호출해야 합니다.
"for" 루프를 사용하면 애니메이션을 쉽게 만들 수 있습니다.
다음은 두 번째 예제의 Arduino 소스 코드입니다.
#include <FastLED.h>
#define LED_PIN 7
#define NUM_LEDS 20
CRGB leds[NUM_LEDS];
void setup() {
FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
}
void loop() {
for (int i = 0; i <= 19; i++) {
leds[i] = CRGB ( 0, 0, 255);
FastLED.show();
delay(40);
}
for (int i = 19; i >= 0; i--) {
leds[i] = CRGB ( 255, 0, 0);
FastLED.show();
delay(40);
}
}
Code language: Arduino (arduino)
여기에서 첫 번째 "for" 루프는 40밀리초 지연으로 첫 번째 LED에서 마지막 LED까지 20개의 모든 LED를 파란색으로 켭니다. 다음 "for" 루프는 20개의 모든 LED에 다시 불이 켜지지만 이번에는 마지막 LED에서 첫 번째 LED까지 빨간색으로 역순으로 켜집니다.
FastLED 라이브러리는 정말 흥미로운 애니메이션과 조명 쇼를 만드는 데 사용할 수 있는 다른 많은 기능을 갖추고 있으므로 다음 LED 프로젝트를 빛나게 만드는 것은 오직 당신의 상상에 달려 있습니다.
이제 서두에서 언급한 DIY 인터랙티브 LED 커피 테이블 프로젝트를 살펴보겠습니다. 그래서 이것은 저와 Creativity Hero의 Marija와의 콜라보레이션 프로젝트였습니다.
그녀의 웹사이트 기사에서 그녀가 나무 구조물을 자르고 조립하는 것부터 모든 전자 부품을 함께 납땜하고 연결하는 것까지 테이블을 만드는 전체 과정을 설명하고 있습니다. 여기에서는 전자 부품이 어떻게 작동하는지, 맞춤형 Android 애플리케이션을 구축하고 Arduino 보드를 프로그래밍하는 방법을 설명합니다.
다음은 이 프로젝트의 전체 회로도입니다.
따라서 테이블은 45개의 주소 지정 가능한 LED, 45개의 적외선 근접 센서 및 HC-05 Bluetooth 모듈로 구성되며 모두 Arduino Mega 보드에 연결됩니다. 회로는 5V 6A 전원 공급 장치로 전원이 공급됩니다.
아래 링크에서 이 예시에 필요한 구성요소를 얻을 수 있습니다.
관련: Arduino에서 RGB LED를 사용하는 방법 | 튜토리얼
다음은 이 프로젝트의 Arduino 코드이며 Bluetooth 색상 제어 기능을 제외하면 코드가 실제로 매우 간단하다는 것을 알 수 있습니다.
#include "FastLED.h"
#define NUM_LEDS 45
#define LED_PIN 2
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];
void setup() {
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);
FastLED.setBrightness(brightness);
// Set the 45 proximity sensors pins as inputs, from digital pin 3 to pin 48
for (int pinNo = 0 + 3; pinNo <= 45 + 3; pinNo++) {
pinMode(pinNo, INPUT);
}
}
void loop() {
for (int pinNo = 0; pinNo <= NUM_LEDS-1; pinNo++) {
leds[pinNo] = CRGB( 0, 255, 0); // Set all 45 LEDs to green color
// If an object is detected on top of the particular sensor, turn on the particular led
if ( digitalRead(pinNo + 3) == LOW ) {
leds[pinNo] = CRGB( 0, 0, 255); // Set the reactive LED to bluee
}
}
FastLED.show(); // Update the LEDs
delay(20);
}
Code language: Arduino (arduino)
설명: 먼저 앞에서 설명한 대로 기본 매개변수를 정의하고 45개의 근접 센서 핀을 입력으로 설정해야 합니다.
단일 "for" 루프를 사용하는 메인 루프에서 모든 LED를 특정 색상으로 설정하고 근접 센서가 물체를 감지했는지 여부도 확인합니다. 이것이 사실이거나 이 경우 LOW 논리 상태이면 특정 반응 색상이 특정 LED로 설정됩니다. 마지막에 FastLED.show() 함수를 사용하여 LED 색상을 업데이트합니다.
Bluetooth 색상 제어 기능을 포함하려면 코드 줄을 더 추가하고 Android 앱을 만들어야 합니다. Arduino와 함께 HC-05 Bluetooth 모듈을 사용하는 방법과 MIT App Inventor 온라인 애플리케이션을 사용하여 나만의 Android 애플리케이션을 만드는 방법에 대한 별도의 자습서가 이미 있으므로 자세한 내용은 언제든지 확인할 수 있습니다.
Android 앱이 작동하는 방식은 다음과 같습니다. 색상을 선택할 수 있는 색상 팔레트 이미지, 선택한 색상을 반응 또는 배경 LED에 적용할지 여부를 선택할 수 있는 두 개의 확인 버튼 및 밝기를 조정하는 슬라이더로 구성됩니다.
앱의 블록을 살펴보면 색상 팔레트 이미지가 배치된 캔버스를 만졌을 때 어떤 일이 발생하는지 알 수 있습니다. .GetPixelColor 블록을 사용하여 선택한 색상에 대한 빨강, 녹색 및 파랑 값을 가져오고 Bluetooth SendText 블록을 사용하여 이 정보를 텍스트 형식으로 Arduino에 보냅니다.
선택한 체크박스에 따라 Arduino에서 텍스트를 수신할 때 도움이 되는 다른 첫 번째 문자 또는 마커를 보냅니다. 슬라이더의 위치를 변경할 때도 마찬가지입니다. 10에서 100 사이의 값이 "3"이라는 마커가 앞에 있는 텍스트 형식으로 Arduino에 전송됩니다.
아래에서 Android 앱과 MIT App Inventor 프로젝트 파일을 다운로드할 수 있습니다.
Arduino 코드는 다음과 같습니다.
#include <SoftwareSerial.h>
#include "FastLED.h"
#define NUM_LEDS 45
#define LED_PIN 2
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];
SoftwareSerial Bluetooth(53, 52); // Arduino(RX, TX) - Bluetooth (TX, RX)
// Initial background color
int backR = 100;
int backG = 50;
int backB = 10;
// Initial reactive color
int reactiveR = 10;
int reactiveG = 50;
int reactiveB = 100;
int brightness = 50; // Initial brightness
String dataIn = "";
void setup() {
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);
FastLED.setBrightness(brightness);
Serial.begin(38400);
Bluetooth.begin(38400); // Default baud rate of the Bluetooth module
for (int pinNo = 0 + 3; pinNo <= 45 + 3; pinNo++) {
pinMode(pinNo, INPUT);
}
}
void loop() {
if (Bluetooth.available() > 0) {
dataIn = Bluetooth.readString();
delay(20);
if (dataIn.startsWith("1")) {
delay(10);
String stringR = dataIn.substring(dataIn.indexOf("R") + 1, dataIn.indexOf("G"));
reactiveR = stringR.toInt();
String stringG = dataIn.substring(dataIn.indexOf("G") + 1, dataIn.indexOf("B"));
reactiveG = stringG.toInt();
String stringB = dataIn.substring(dataIn.indexOf("B") + 1, dataIn.indexOf("E"));
reactiveB = stringB.toInt();
}
else if (dataIn.startsWith("2")) {
String stringR = dataIn.substring(dataIn.indexOf("R") + 1, dataIn.indexOf("G"));
backR = stringR.toInt();
String stringG = dataIn.substring(dataIn.indexOf("G") + 1, dataIn.indexOf("B"));
backG = stringG.toInt();
String stringB = dataIn.substring(dataIn.indexOf("B") + 1, dataIn.indexOf("E"));
backB = stringB.toInt();
}
else if (dataIn.startsWith("3")) {
String stringBrightness = dataIn.substring(dataIn.indexOf("3") + 1, dataIn.length());
brightness = stringBrightness.toInt();
FastLED.setBrightness(brightness);
}
}
for (int pinNo = 0; pinNo <= NUM_LEDS-1; pinNo++) {
leds[pinNo] = CRGB( backR, backG, backB);
if ( digitalRead(pinNo + 3) == LOW ) {
leds[pinNo] = CRGB( reactiveR, reactiveG, reactiveB);
}
}
FastLED.show();
delay(20);
}
Code language: Arduino (arduino)
설명: 먼저 Arduino와 HC-05 Bluetooth 모듈 또는 모듈이 연결된 핀 간의 직렬 통신을 정의해야 합니다. 설정 섹션에서 이 모듈이 작동하는 전송 속도를 설정해야 합니다. 그런 다음 Bluetooth.available() 함수를 사용하는 메인 루프에서 스마트폰에서 들어오는 데이터가 있는지 확인합니다. 그것이 사실이라면 Bluetooth.readString() 함수를 사용하여 데이터를 문자열로 받습니다. 그런 다음 .startsWith() 함수를 사용하여 첫 번째 문자 또는 마커를 확인하고 반응 색상, 배경 또는 밝기를 변경할지 여부를 확인합니다.
.substring() 함수를 사용하여 수신된 텍스트에서 Red, Green 및 Blue 값을 추출하고 정수로 변환합니다. 그런 다음 이 값은 앞에서 설명한 대로 색상을 설정하고 LED를 켜는 "for" 루프에서 사용됩니다. 같은 방법으로 LED의 밝기를 조정합니다.
이것이 이 튜토리얼의 전부입니다. 아래 댓글 섹션에서 언제든지 질문하세요.
제조공정
단극, 2극 및 중간 스위치를 사용한 온수기 제어 전기 온수기 배선 시리즈에서는 단방향, 양방향, 3방향 및 4방향(중간) 스위치를 사용하여 온수기를 제어하는 방법을 보여줄 것입니다. 단극 스위치를 사용한 온수기 제어 단방향 또는 단방향 스위치를 사용하여 비연속(비동시) 온수기를 제어하려면 최소 30암페어 회로가 있는 10게이지 와이어 크기를 사용해야 합니다. 파쇄기. 우리의 경우 온수기를 주 배전반에서 30A 회로 차단기로 보호되는 30A 단방향 스위치에 직접 연결했습니다. 스위치의 아래쪽 위치는 온수기에 대한 라인
우리는 모두 RC 차량의 역학에 매료되어 있습니다. 이는 기어, 속도 및 가속도를 변경하는 것이 얼마나 쉽기 때문입니다. 당신이 모를 수도 있는 것은 주요 구성 요소가 마이크로 서보라는 것입니다. 그러나 SG 90 Servo와 같은 고정밀도로 개체를 제어할 수 있는 장치는 소수에 불과합니다. 그러나 이러한 하드웨어 장치는 독립적으로 작동하지 않습니다. 종종 Arduino, Raspberry Pi 등과 같은 마이크로 컨트롤러가 필요합니다. 진행하면서 SG90 서보에 대해 배우고 사용하는 방법을 배웁니다. SG 90 서보란 무엇입니까