You are on page 1of 5

// Programa : Sensor de chuva

// Autor : Anderson Felipe Pereira Vieira

int pino_d = 2; //Pino ligado ao D0 do sensor

int pino_a = A5; //Pino ligado ao A0 do sensor

int val_d = 0; //Armazena o valor lido do pino digital

int val_a = 0; //Armazena o valor lido do pino analogico

int Port_PonteH_in1 = 5;

int Port_PonteH_in2 = 6;

void controle_motor(int a, int b);

void movimentar(int code);

int botaoFrente = 13;

int botaoTras = 12;

int botaoStop = 4;

int buttonState1 = 0;

int buttonState2 = 0;

int buttonState3 = 0;

int inicio = 8;

int fim = 9;

void setup()

// Define os pinos do sensor como entrada

pinMode(pino_d, INPUT);

pinMode(pino_a, INPUT);

//Define os pinos da ponte h como saída


pinMode(Port_PonteH_in1, OUTPUT);

pinMode(Port_PonteH_in2, OUTPUT);

pinMode(botaoFrente, INPUT);

pinMode(botaoTras, INPUT);

pinMode(botaoStop, INPUT);

pinMode(inicio, INPUT);

pinMode(fim, INPUT);

Serial.begin(9600);

void loop()

//digitalWrite(Port_PonteH_in1, HIGH); Pino 9 = Ativado = Motor direita para tras

//digitalWrite(Port_PonteH_in2, HIGH); Pino 10 = Ativado = Motor direita para frente

//Le e arnazena o valor do pino digital

val_d = digitalRead(pino_d);

//Le e armazena o valor do pino analogico

val_a = analogRead(pino_a);

//Envia as informacoes para o serial monitor

Serial.print("Valor digital : ");

Serial.print(val_d);

Serial.print(" - Valor analogico : ");

Serial.println(val_a);

buttonState1 = digitalRead(botaoFrente);

buttonState2 = digitalRead(botaoTras);

buttonState3 = digitalRead(botaoStop);
if(digitalRead(inicio) == HIGH){

movimentar(0);

}else{

if(buttonState1 == HIGH){

movimentar(1);

if(buttonState2 == HIGH){

movimentar(2);

if(buttonState3 == HIGH){

movimentar(0);

if(buttonState1 == HIGH){

movimentar(1);

if(buttonState2 == HIGH){

movimentar(2);

if(buttonState3 == HIGH){

movimentar(0);

if(digitalRead(fim) == HIGH){

movimentar(0);

}else{

if(buttonState1 == HIGH){
movimentar(1);

if(buttonState2 == HIGH){

movimentar(2);

if(buttonState3 == HIGH){

movimentar(0);

if(buttonState1 == HIGH){

movimentar(1);

if(buttonState2 == HIGH){

movimentar(2);

if(buttonState3 == HIGH){

movimentar(0);

if (val_a > 0 && val_a <400)

movimentar(1);

}
void movimentar(int code){

switch(code){

case 1: //Frente

controle_motor(0, 255);

break;

case 2: //Trás

controle_motor(255, 0);

break;

default: //Stop

controle_motor(0, 0);

break;

void controle_motor(int a, int b){

analogWrite(Port_PonteH_in1, a);

analogWrite(Port_PonteH_in2, b);

You might also like