Подключение к Arduino различных элементов
RGB светодиод с общим катодом
Самая длинная ножка - катод, его подключаем на GND (земля). Остальные ножки отвечают за конкретный свет; их подключаем через резистор на 1 КОм на ШИМ (PWM) выход. Слева от катода одна ножка; отвечает за красный свет; подключаем через резистор, например, на D11. Справа от катода ножка, отвечающая за зелёный свет; подключаем через резистор, например, на D10. Последня ножка отвечает за синий свет; подключаем через резистор, например, на D9.Пример плавного зажигания (и гашение) красного света:
int ledRed = 11;
int ledGreen = 10;
int ledBlue = 9;
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
// the setup routine runs once when you press reset:
void setup() {
pinMode(ledRed, OUTPUT);
pinMode(ledGreen, OUTPUT);
pinMode(ledBlue, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
// set the brightness of pin 9:
analogWrite(ledRed, brightness);
analogWrite(ledGreen, 0);
analogWrite(ledBlue, 0);
// change the brightness for next time through the loop:
brightness = brightness + fadeAmount;
// reverse the direction of the fading at the ends of the fade:
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
// wait for 30 milliseconds to see the dimming effect
delay(30);
}
Инфракрасный приёмник
Мой образец у продавца назывался "VS1838 TL1838 VS1838B Universal Infrared Receiving Head For Remote control". Этот экземпляр подключается к arduino не так, как в статье Arduino Uno. Подключение ИК-приемника, но программу для считывания значений я применил оттуда (библиотеку IRremote качать по ссылке из той статьи):
#include "IRremote.h"
IRrecv irrecv(11); // Указываем пин, к которому подключен приемник
decode_results results;
void setup() {
Serial.begin(9600); // Выставляем скорость COM порта
irrecv.enableIRIn(); // Запускаем прием
}
void loop() {
if (irrecv.decode(&results)) // Если данные пришли
{
Serial.println(results.value, HEX); // Отправляем полученную данную в консоль
irrecv.resume(); // Принимаем следующую команду
}
}
Согласно этой программе, первую ногу ИК приёмника подключаем на цифровой пин 11. Среднюю ногу подключаем и к катоду (минус, короткая ножка) конденсатора на 10 микрофарад, и к земле (порт GND на arduino). Третью ногу через резистор на 100 Ом подключаем и к аноду (плюс, длинная ножка) того же конденсатора, и к 5V на arduino. Всё, можно запускать и наблюдать в консоли коды нажимаемых кнопок с любых инфракрасных пультов.LCD экран 2 строки 16 символов через I2C
Мой экземпляр у продавца назывался "Blue Display IIC/I2C/TWI/SPI Serial Interface 1602 16X2 Character LCD Module". Продавец в описание продукта любезно добавил ссылку на библиотеку и пример. Для того, чтобы сэкономить пины на Arduino, на обратной стороне экранчика установлена плата для конвертации в I2C. Благодаря этому подключается мониторчик к arduino всего четырьмя проводками. Земля (GND), питание (VCC экрана на 5V), SDA (data экрана на A4), SCL (clock экрана на A5). Подробности по экранчику и указанный способ подключения почерпнул в статье "Arduino UNO урок 11 - Serial LCD".
Пример программы из архива, рекомендованного продавцом:
//DFRobot.com
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup() {
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.print("Hello, world!");
}
void loop() {
}
Предварительно скопировал всю папку LiquidCrystal_I2C с примером и библиотекой в свою папку библиотек: /home/oleg/sketchbook/libraries/
Комментарии
Отправить комментарий