Kilka miesięcy temu otrzymałem Arduino Uno z zestawem startowym. W zestawie znajduje się kilka czujników, przyciski, diody różnego rodzaju itp. Przez te kilka miesięcy Arduino leżało w szufladzie i dopiero filmik pana Roberta zmotywował mnie do uruchomienia płytki, zainstalowania środowiska i zmontowania kilku układów.
Przypomniał mi się stary dobry język C. Programowanie mikrokontrolerów i przede wszystkim elektronika analogowa i cyfrowa z czasów studenckich.
Proste układy
Arduino i dioda
Zacząłem od czegoś prostego tj. podłączenia diody w kolorze zielonym.

Jednak zanim mogłem uruchomić całość musiałem wykonać niezbędne kroki:
- Instalacja środowiska IDE
- Instalacja sterowników
- Konfiguracja środowiska np. wybranie układu Arduino Uno i portu COM3.
Dopiero po przejściu podstawowej instrukcji mogłem załadować i uruchomić program migający diodą.
int led = 7;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
Arduino i przycisk
Mam już diodę. To może teraz coś co pozwoli mi nią sterować np. przycisk. Podłączyłem przycisk w układzie z zewnętrznym rezystorem spiętym do masy.

Prosty programik, z jednym warunkiem, pozwolił mi sterować świeceniem za pomocą przycisku.
int LED = 13;
int BUTTON = 2;
int state = 0;
void setup(){
pinMode(LED,OUTPUT);
pinMode(BUTTON,INPUT);
digitalWrite(LED,state);
}
void loop(){
if(digitalRead(BUTTON) == LOW){
//state = (state + 1)%2;
digitalWrite(LED,1);
}else{
digitalWrite(LED,0);
}
}
Po tej części miałem kilka pomysłów. Przygotowałem diodę RGB, odbiornik podczerwieni z pilotem, buzzer, wyświetlacz jednocyfrowy.
Arduino i IR
Wybór padł na odbiornik podczerwieni z pilotem. Tak się składa, że praktycznie nic w domu nie mamy sterowanego pilotem na podczerwień. Nawet pilot do bramy okazał się używać częstotliwości radiowej 433,92 MHz.
W zestawie Arduino dołączony był odbiornik HX1838. Jak się później okazało do zestawu Raspberry PI również miałem dołączony odbiornik IR. Podłączenie jest proste, odbiornik posiada 3 piny: GND (masa), Vcc (zasilanie 5V) i S (sygnał). Znalazłem informację o bibliotece IRremote, którą należy dołączyć, aby używać tego układu. Podmiana bibliotek w środowisku IDE, kilka minut poszukiwania kodu i wszystko ruszyło. Do komputera wysłałem odczytany kod z pilota.

#include <IRremote.h>
const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);
}
void loop(){
if (irrecv.decode(&results)){
Serial.println(results.value, HEX);
switch (results.decode_type){
case NEC: Serial.println("NEC"); break ;
case SONY: Serial.println("SONY"); break ;
case RC5: Serial.println("RC5"); break ;
case RC6: Serial.println("RC6"); break ;
case DISH: Serial.println("DISH"); break ;
case SHARP: Serial.println("SHARP"); break ;
case JVC: Serial.println("JVC"); break ;
case SANYO: Serial.println("SANYO"); break ;
//case MITSUBISHI: Serial.println("MITSUBISHI"); break ;
case SAMSUNG: Serial.println("SAMSUNG"); break ;
case LG: Serial.println("LG"); break ;
case WHYNTER: Serial.println("WHYNTER"); break ;
//case AIWA_RC_T501: Serial.println("AIWA_RC_T501"); break ;
case PANASONIC: Serial.println("PANASONIC"); break ;
case DENON: Serial.println("DENON"); break ;
default:
case UNKNOWN: Serial.println("UNKNOWN"); break ;
}
irrecv.resume();
}
/*if (irrecv.decode(&results)){
Serial.println(results.value, HEX);
irrecv.resume();
}*/
}
W zestawie jest również układ do wysyłania sygnałów. Być może jego również kiedyś spróbuję uruchomić.
Arduino i śledzenie słońca w trackerze
Na koniec znalazłem fotorezystory służące do pomiaru natężenia słońca. Przypomniał mi się z czasów studenckich układ do śledzenia słońca na niebie, który składał się z 4 takich fotorezystorów ułożonych w piramidzie.

Spróbowałem odtworzyć ten układ i pierwsza wersja wygląda tak:

Jeśli jesteś zainteresowany podobnymi tematami napisz o tym. Tymczasem, tym wpisem zbieram kilka istotnych informacji i zapraszam do innych artykułów na blogu i na facebooka.