Salve a tutti, è da circa due settimane che sto provando a creare una macchina comandata a IR, il problema è che il motor driver
(questo https://www.amazon.it/bipolare-Raspberry-intelligente-pannello-controllo/dp/B06X9KQ84B/ref=asc_df_B06X9KQ84B/?tag=googshopit-21&linkCode=df0&hvadid=279830266001&hvpos=&hvnetw=g&hvrand=11665359880992180032&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1008747&hvtargid=pla-420918437214&psc=1)
muove solo il motore a sinistra, da quello a destra non ho segni di risposta, ho controllato le connessioni diverse volte e penso siano giuste. Sto usando questo codice:
#include "IRremote.h"
IRrecv telecomando(11);
decode_results risultato;
int enA = 9;
int in1 = 8;
int in2 = 7;
int in3 = 5;
int in4 = 4;
int enB = 3;
void setup()
{
Serial.begin(9600);
telecomando.enableIRIn();
pinMode(enA , OUTPUT);
pinMode(enB , OUTPUT);
pinMode(in1 , OUTPUT);
pinMode(in2 , OUTPUT);
pinMode(in3 , OUTPUT);
pinMode(in4 , OUTPUT);
}
void avantixx()
{
digitalWrite(in1,HIGH);
digitalWrite(in2, LOW);
analogWrite(enA,250);
digitalWrite(in3,LOW);
digitalWrite(in4, HIGH);
analogWrite(enB,250);
}
void avantix()
{
digitalWrite(in1,HIGH);
digitalWrite(in2, LOW);
analogWrite(enA,150);
digitalWrite(in3,LOW);
digitalWrite(in4, HIGH);
analogWrite(enB,150);
}
void Stop()
{
digitalWrite(in1,LOW);
digitalWrite(in2, LOW);
analogWrite(enA,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4, LOW);
analogWrite(enB,LOW);
}
void indietro()
{
digitalWrite(in1,LOW);
digitalWrite(in2, HIGH);
analogWrite(enA,100);
digitalWrite(in3,LOW);
digitalWrite(in4, HIGH)
analogWrite(enB,100);
}
void destra()
{
digitalWrite(in1,HIGH);
digitalWrite(in2, LOW);
analogWrite(enA,50);
digitalWrite(in3,LOW);
digitalWrite(in4, LOW);
analogWrite(enB,LOW);
}
void sinistra()
{
digitalWrite(in1,LOW);
digitalWrite(in2, LOW);
analogWrite(enA,LOW);
digitalWrite(in3,HIGH);
digitalWrite(in4, LOW);
analogWrite(enB,50);
}
void loop()
{
if (telecomando.decode(&risultato))[
{
if(risultato.value==16750695){avantixx();}
if(risultato.value==16718055){avantix();}
if(risultato.value==16726215){Stop();}
if(risultato.value==16730805){indietro();}
if(risultato.value==16716015){sinistra();}
if(risultato.value==16734885){destra();}
Serial.println(risultato.value);
telecomando.resume();
}
}