what i want to do is to have two buttons from a IR remote controlling if a motor goes one way or the other way with an H bridge while also being able to control the speed of the motor using a potentiometer. I did my connections on TinkerCad Circuits and it worked out fine but when i tried doing it IRL it wouldnt do anything. any suggestions?
circuit of a test I did on my school cromebook on TinkerCad (it works):
code from said test:
#include <IRremote.h>
const int forward_pin=5;
const int backward_pin=6;
const int potentiometer_pin=A0;
const int speed_pin=9;
const int rcvPin=3;
int potentiometer;
int speed;
IRrecv irrecv(rcvPin);
decode_results results;
void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
}
void loop(){
potentiometer=analogRead(potentiometer_pin);
speed=map(potentiometer,0,1023,0,255);
analogWrite(speed_pin,speed);
if(IrReceiver.decode()){
auto value=IrReceiver.decodedIRData.decodedRawData;
switch(value)
{
case 4077698816:
Serial.println("0");
digitalWrite(6,LOW);
digitalWrite(5,LOW);
break;
case 4010852096:
Serial.println("1");
digitalWrite(6,LOW);
digitalWrite(5,HIGH);
break;
case 3994140416:
Serial.println("2");
digitalWrite(6,HIGH);
digitalWrite(5,LOW);
break;
default: Serial.println(value);
}
IrReceiver.resume();
}
}
the code i have now:
#include <IRremote.h>
const int forward_pin=5;
const int backward_pin=6;
const int potentiometer_pin=A0;
const int speed_pin=9;
const int rcvPin=3;
int potentiometer;
int speed;
IRrecv irrecv(rcvPin);
decode_results results;
void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
}
void loop(){
potentiometer=analogRead(potentiometer_pin);
speed=map(potentiometer,0,1023,0,255);
analogWrite(speed_pin,speed);
if(IrReceiver.decode()){
auto value=IrReceiver.decodedIRData.decodedRawData;
switch(value)
{
case 4077698816:
Serial.println("0");
digitalWrite(6,LOW);
digitalWrite(5,LOW);
break;
case 4010852096:
Serial.println("1");
digitalWrite(6,LOW);
digitalWrite(5,HIGH);
break;
case 3994140416:
Serial.println("2");
digitalWrite(6,HIGH);
digitalWrite(5,LOW);
break;e
default: Serial.println(value);
}
IrReceiver.resume();
}
}



