ive been using 2 libraries servo.h and IRremote.h, that aparently disable PMW on some pins? im not sure, but i cant seem to use pins 10-13 to control servos
#include <Servo.h>
#define IR_USE_AVR_TIMER 2
#include <IRremote.hpp>
const int recv_pin = 2;
const int motor1pin1 = 3;
const int motor1pin2 = 4;
const int motor1pinENA = 5;
const int motor2pin1 = 7;
const int motor2pin2 = 8;
const int motor2pinENA = 6;
const int pinServoGripper = 9;
const int pinServoTangan = 10; //this is the servo that wont work!!!!!!
Servo Tangan;
Servo Gripper;
void setup() {
IrReceiver.begin(recv_pin);
Serial.begin(9600);
Gripper.attach(pinServoGripper);
Tangan.attach(pinServoGripper);
pinMode(pinServoGripper, OUTPUT);
pinMode(pinServoTangan, OUTPUT);
pinMode(recv_pin, INPUT);
pinMode(motor1pin1, OUTPUT);
pinMode(motor1pin2, OUTPUT);
pinMode(motor1pinENA, OUTPUT);
pinMode(motor2pin1, OUTPUT);
pinMode(motor2pin2, OUTPUT);
pinMode(motor2pinENA, OUTPUT);
Gripper.write(30);
Tangan.write(140);
}
void loop() {
// put your main code here, to run repeatedly:
if(IrReceiver.decode())
{
Serial.println(IrReceiver.decodedIRData.decodedRawData , HEX);
switch(IrReceiver.decodedIRData.decodedRawData)
{
case 0xFF00DB24: //maju
maju(255);
break;
case 0xE619DB24: //maju pelan
maju(100);
break;
case 0xFE01DB24: //mundur
mundur(255);
break;
case 0xEF10DB24: //mundur pelan
mundur(100);
break;
case 0xFD02DB24: // kanan
kanan(255);
break;
case 0xE31CDB24: // kanan pelan
kanan(100);
break;
case 0xFC03DB24: // kiri
kiri(255);
break;
case 0xF20DDB24: // kiri pelan
kiri(100);
break;
case 0xF40BDB24: // buka tangan
Serial.println("buka tangan");
Gripper.write(155);
break;
case 0xBC43DB24: // tutup tangan
Serial.println("tutup tangan");
Gripper.write(30);
break;
case 0xB847DB24: // angkat tangan
Serial.println("angkat tangan");
Tangan.write(140);
break;
case 0xB24DDB24: // turun tangan
Serial.println("turun tangan");
Tangan.write(30);
break;
default:
digitalWrite(motor1pin1, LOW);
digitalWrite(motor1pin2, LOW);
digitalWrite(motor2pin1, LOW);
digitalWrite(motor2pin2, LOW);
}
delay(300);
IrReceiver.resume();
}
}
void maju(int kecepatan){
Serial.println("maju");
digitalWrite(motor1pin1, HIGH); //motor kanan maju
digitalWrite(motor1pin2, LOW);
analogWrite(motor1pinENA, kecepatan);
digitalWrite(motor2pin1, HIGH); //motor kiri maju
digitalWrite(motor2pin2, LOW);
analogWrite(motor2pinENA, kecepatan);
}
void mundur(int kecepatan){
Serial.println("mundur");
digitalWrite(motor1pin1, LOW); //motor kanan mundur
digitalWrite(motor1pin2, HIGH);
analogWrite(motor1pinENA, kecepatan);
digitalWrite(motor2pin1, LOW); //motor kiri mundur
digitalWrite(motor2pin2, HIGH);
analogWrite(motor2pinENA, kecepatan);
}
void kanan(int kecepatan){
Serial.println("kanan");
digitalWrite(motor1pin1, LOW); // motor kanan mundur
digitalWrite(motor1pin2, HIGH);
analogWrite(motor1pinENA, kecepatan);
digitalWrite(motor2pin1, HIGH); //motor kiri maju
digitalWrite(motor2pin2, LOW);
analogWrite(motor2pinENA, kecepatan);
}
void kiri(int kecepatan){
Serial.println("kiri");
digitalWrite(motor1pin1, HIGH); //motor kanan maju
digitalWrite(motor1pin2, LOW);
analogWrite(motor1pinENA, kecepatan);
digitalWrite(motor2pin1, LOW); //motor kiri mundur
digitalWrite(motor2pin2, HIGH);
analogWrite(motor2pinENA, kecepatan);
}
sorry, the code is written in indonesian, its for a contest