// http://labdegaragem.com/forum/topics/arduino-n-o-consigo-converter-sinal-pwm-para-utilizar-com-a-ponte int canal = 0; ///armazenar valores do radio int Pin1 = 4; // Pino de leitura cima/abaixo do radio int FrenteD = 9; /// Pinos da Ponte H de sentido int FrenteE = 10; int v = 6; //// Pino PWM da Ponte H para controle da velocidade /// Variaveis do codigo int Var0 = 0; /// Variaveis para conversao dos valores do radio para a ponte H int Var1 = 0; //---------------------------------------------- void setup() { Serial.begin(9600); pinMode(Pin1, INPUT); pinMode(FrenteD, OUTPUT); pinMode(FrenteE, OUTPUT); pinMode(v, OUTPUT); } //---------------------------------------------- void loop() { canal = pulseIn(Pin1, HIGH); //// Faz a leitura do Pino do Radio canal = 1470; if (canal > 1500) { cima(); } if (canal < 1480) { baixo(); } if (canal < 1500 && canal > 1480) // Caso o Joystick estiver no meio, nao fazer nada { digitalWrite(FrenteD, LOW); digitalWrite(FrenteE, LOW); analogWrite(v, 0); Serial.println("parado"); } } //---------------------------------------------- void cima() { canal = pulseIn(Pin1, HIGH); //// Faz a leitura do Pino do Radio if (canal > 1530) // Comparador para ir para frente { Var0 = map(canal, 1530, 1990, 0, 255); // Mapeia os valores recebidos para valores validos digitalWrite(FrenteD, HIGH); digitalWrite(FrenteE, LOW); analogWrite(v, Var0 ); Serial.println("cima"); } } //---------------------------------------------- void baixo() { canal = pulseIn(Pin1, HIGH); ////Faz a leitura do Pino do Radio if (canal < 1480) // Comparador para ir para trĂ¡s { Var1 = map(canal, 1480, 1030, 0, 255); // Mapeia os valores recebidos para valores validos digitalWrite(FrenteD, LOW); digitalWrite(FrenteE, HIGH); analogWrite(v, Var1 ); Serial.println("baixo"); } }