- Arduino
- display cu 7 segmente
- receptor IR TSOP48
- telecomanda
#include
int RECV_PIN = 12;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results))
{
Serial.println(results.value, DEC);
irrecv.resume(); // Receive the next value
}
}
dupa ce am aflat ce cod numeric are fiecare buton, am folosit un display cu 7 segmente pe care sa imi apara ce buton am apasat pe telecomanda.
(nu am folosit toate butoanele in urmatorul montaj ci butoanele de la 0 la 9, care afiseaza pe display numerele de la 0 la 9 si inca 3 butoane, unul care afiseaza punctul pe display, altul care stinge punctul si inca un buton care stinge tot display-ul)
Pentru asta am folosit urmatorul COD:
#include
int RECV_PIN = 12;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results))
{
Serial.println(results.value, DEC);
irrecv.resume(); // Receive the next value
}
if(results.value==16724175) //scrie 1
{
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
}
if(results.value==16718055) //scrie 2
{
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 1);
}
if(results.value==16743045) //scrie 3
{
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 1);
}
if(results.value==16716015) // scrie 4
{
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 1);
}
if(results.value==16726215) // scrie 5
{
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 1);
}
if(results.value==16734885) //scrie 6
{
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
}
if(results.value==16728765) // scrie 7
{
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
}
if(results.value==16730805) // scrie 8
{
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
}
if(results.value==16732845) // scrie 9
{
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 1);
}
if(results.value==16738455) // scrie 0
{
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 0);
}
if(results.value==16756815) // sterge display
{
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9, 0);
}
if(results.value==16750695) // scrie punct
{
digitalWrite(9, 1);
}
if(results.value==16748655) // sterge punct
{
digitalWrite(9, 0);
}
}
Dupa cum vedeti, in acest montaj sunt combinate 2 COD-uri(programe) cel de la display-ul cu 7 segmente si cel de la receporul infrarosu.
Nu merge nici unul din codurile pe care l-ai postat! Imi da eroare in arduino.
RăspundețiȘtergereMi-ar place sa imi zici ce gresesc.
Sebastian
Ping
ȘtergereIn primul rand, cand am pus codul pe blog nu la pus complet la prima linie de exemplu era : # include IRremote.h ( parca asa) si e posibil sa mai fie anumite greseli prin cod, in loc de paranteza rotunda sa puna % si tot asa, dar daca citesti atent stii ce sa corectezi.
RăspundețiȘtergereIn al doilea rand, daca nici corectat nu functioneaza, atunci ai Arduino uno pentru care iti trebuie o alta librarie, loop-ul e acelasi, poate mici modificari doar.
Iar in al treilea rand, daca tot nu functioneaza, atunci nu ai schimbat codurile cu cele de la telecomanda ta.