Material:
- Arduino
- Servo
Esquema:
#include <Servo.h> //incluir a biblioteca de servo
Servo myservo; //Inclusao do servo
int n = 0; //Entradas seriais
int pos = 0; //Posição zero para o servop
void setup(){
Serial.begin(9600); //Ativando a porta serial
myservo.attach(8); //Pino do servo+arduino
myservo.write(0); //Servo setado com valor zero
Serial.flush(); //Limpando a memoria do serial
Serial.println("Digite: \n 2-90 \n 3-180 \n 4-02"); //criação de um cabeçalho no serial
}
void loop(){
if(Serial.available()>0){ //Teste se porta serial esta recebendo dados
n = Serial.read(); //leitura de dados
Serial.print("Valor lido: ");
Serial.println(n); //Printa o valor teclado
if(n==50){ //girar 90
myservo.write(90);
delay(500);
}
if(n==51){ //girar 180
myservo.write(180);
delay(500);
}
if(n==52){ //volta pra 0
myservo.write(-180);
delay(500);
}
}
Serial.flush();
}
Vídeo:
Comentário sobre o código:
Podemos notar que ao fazer o upload do código e abrirmos o serial(Crtl+Shift+M) aparecerá um tipo de cabeçalho:
Digite:
- 2-90
- 3-180
- 4-0
Isso ocorre porque o Serial.print está no void setup, se estivesse no void loop seria constantemente mostrado na tela.
Temos a leitura do valor "n" que é gerado pelo teclado. Como o objetivo é comparar valores lidos pelo teclado precisamos utilizar o valor real do "n" e compara-lo em uma condição: (n==50) "n é igual a 50?", como 50 representa do digito "2", caso você tenha pressionado o número "2" a condição torna-se verdade e uma tarefa é executada.
É possível usar outros valores e também acionar outros dispositivos como motores/leds usando essa mesma lógica, basta adicionar mais condições.
Agradeço a atenção
como faço para colocar letras no lugar de números? me ajudaria demais
ResponderExcluir