Подключение к 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/SP​​I 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/

Комментарии

Популярные сообщения из этого блога

Пропорциональное распределение суммы

Битрикс: своя геолокация

Bitrix24 API - разбор демо приложения третьего типа