Arduino
Monografias: Arduino. Pesquise 862.000+ trabalhos acadêmicosPor: cmtoniolo • 23/10/2013 • 769 Palavras (4 Páginas) • 694 Visualizações
Vamos controlar um interruptor com o Arduino?
Criado por Pedro Pinto em 18 de Fevereiro de 2011 | Categoria: Tutoriais | 59 comentários
Por Filipe Caetano | MagicKey para o PPLWARE
Na sequência dos artigos que temos apresentado para a plataforma Arduino, hoje demonstrar como controlar um interruptor. Este interruptor “partilhado” permitirá que a luz seja controlada através de um normal interruptor ou ainda a partir do computador.
Neste artigo vamos disponibilizar o código fonte, para que seja possível controlar uma saída digital, de acordo com as leituras feitas no interruptor ligado a uma porta digital de entrada e de acordo com os dados recebidos do computador via porta série.
Tal como no anterior artigo acerca do Arduino (ver aqui) partimos de um exemplo para construir o nosso código, no entanto desta vez foi necessário realizar consideráveis alterações.
Visto que iremos ter que ter uma entrada digital, onde vamos ligar o botão do interruptor, o exemplo escolhido foi Digital->Button.
Na comunicação do Arduino com o computador nos dados trocados entre eles definiu-se
• zero significaria a luz desligada
• e um valor diferente de zero que a luz ligada.
O código desenvolvido para o Arduino foi o seguinte:
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
int buttonStatemem = 0;
int luzon = 0;
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
//inicialização da porta a velocidade de 9600
Serial.begin(9600);
}
void loop(){
//verifica se existem dados na porta serie para leitura
if (Serial.available())
{
if(Serial.read()==48) //0 em ascii é 48
{
luzon = 0;
}
else
{
luzon=1;
}
}
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// Verifica se o botão se encontra primido e se ainda não foi tratado
if(buttonState==HIGH && buttonStatemem==LOW)
{
if(luzon == 0)
{
luzon = 1;
}
else
{
luzon = 0;
}
buttonStatemem=HIGH;
}
else if(buttonState==LOW)
{
buttonStatemem=LOW;
}
//Liga ou desliga a o Led (luz)
if(luzon == 0)
{
digitalWrite(ledPin, LOW);
}
else
{
digitalWrite(ledPin, HIGH);
}
// Envia o estado da luz
Serial.println(luzon);
delay(500);
}
A imagem seguinte mostra a montagem muito simples feita no Arduino.
Pode ver-se que o botão (B) liga aos 5 volts e ao pino 2 tal como definimos no código. È conveniente adicionar uma resistência de 10Kohm (chamada resistência de Pull-Down) ligada ao
...