26-01-2020, 23:03
Witam!
Otóż mam pewien problem z małym projektem, którego nie potrafię rozwiązać. Chodzi o to, że zbudowałem sobie klasyczny samochodzik sterowany za pomocą pilota na podczerwień. Posiada on 4 silniczki. I tutaj mam pytanie. Czy mógłbym jakoś napisać program, że, jak np. samochód jedzie do tyłu, to DFPlayer mini, z którego korzystam włączył określony dźwięk? Program będzie w załączniku.
Pozdrawiam!
Otóż mam pewien problem z małym projektem, którego nie potrafię rozwiązać. Chodzi o to, że zbudowałem sobie klasyczny samochodzik sterowany za pomocą pilota na podczerwień. Posiada on 4 silniczki. I tutaj mam pytanie. Czy mógłbym jakoś napisać program, że, jak np. samochód jedzie do tyłu, to DFPlayer mini, z którego korzystam włączył określony dźwięk? Program będzie w załączniku.
Pozdrawiam!
Kod:
#include <IRremote.h> //Biblioteka do czujnika IR.
char command;
int receiver_pin = 2;
int vcc = 3;
int gnd = 4;
int statusled = 13;
IRrecv irrecv(receiver_pin);
decode_results results;
// Silnik A
int enA = 10;
int in1 = 9;
int in2 = 8;
// Silnik B
int enB = 5;
int in3 = 7;
int in4 = 6;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(statusled,OUTPUT);
digitalWrite(statusled,LOW);
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(vcc, OUTPUT);
pinMode(gnd, OUTPUT);
digitalWrite(vcc, HIGH);
}
void loop() {
if (irrecv.decode(&results)) {
digitalWrite(statusled,LOW);
irrecv.resume();
if (results.value == 0xFF4AB5){ // Przycisk 8 - DO TYŁU
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 150);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enB, 150);
}else if(results.value == 0xFF18E7 ){ // Przycisk 2 - DO PRZODU
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(enA, 150);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 150);
}else if(results.value == 0xFF38C7 ){ // Przycisk 5 - ZATRZYMANIE
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
analogWrite(enA, 150);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
analogWrite(enB, 150);
}else if(results.value == 0xFF10EF){ // Przycisk 4 - SKRĘT W LEWO
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
analogWrite(enA, 150);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 150);
}else if(results.value == 0xFF5AA5){ // Przycisk 6 - SKRĘT W PRAWO
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(enA, 150);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
analogWrite(enB, 150);
}
}
}