Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Truck - a Car system ------
- * v = 1.0 (Teste 1 Beta)
- * autor = Aislan Silva
- * Descricao = Primeira versao do programa, se tem como funcao a automacao de um Palio 1998, de minha propriedade,
- * nele, nesta primeira versao sera usado uma automation board para o controle de ignicao,sistema de som e farol de milha.
- */
- int relechave = 3; // rele 2 da placa aonde sera conectada a chave, saida digital 3
- int relepartida = 5; // rele 3 da placa conectada ao motor de partida do carro, saida digital 4
- int relepotencia = 2; // rele 1 da placa, farol de milha, saida digital 2
- int sensorfreiodemao = 8;
- int estadosensorfreiodemao;
- int ligarsom = 10; // botao de ligar o aparelho de som
- int voltsom = A2; // sensor de voltagem ligado ao pino analogico 2 do arduino
- char comando;
- void setup()
- {
- // configura reles
- pinMode(relechave, OUTPUT); // rele 2 configurado como saida
- pinMode(relepartida, OUTPUT); // rele 3 configurado como saida
- pinMode(relepotencia, OUTPUT); // rele 1 configurado como saida
- pinMode(ligarsom, OUTPUT); // saida digital 8 configurado para ligar o aparelho do som
- pinMode(voltsom, INPUT); // entrada analogica a1 configurado para verificar o estad do aparelho de som
- pinMode(sensorfreiodemao, INPUT);
- Serial.begin(9600); // inicia configuracao da serialelay(2000);
- }
- void loop()
- {
- if (Serial.available() > 0){
- comando = Serial.read();
- estadosensorfreiodemao = digitalRead(sensorfreiodemao);
- switch(comando)
- {
- case 1: //caracter a que pergunta se a conexao com o arduino
- delay(1000);
- Serial.write('a');
- break;
- case 2: // recebe o comando 2 para ligar a chave
- if(estadosensorfreiodemao == HIGH){
- delay(1000);
- Serial.write('x'); // caracter que informa ao app que o freio de estacionamente nao esta acionado
- }
- else{
- if (digitalRead(relechave) == LOW )
- {
- while (digitalRead(relechave) == LOW )
- {
- digitalWrite(relechave, HIGH);
- delay(1000);
- if (digitalRead(relechave) == HIGH)
- {
- delay(1000);
- Serial.write('b'); //caracter que indica que a chave ligou
- }
- else
- {
- delay(1000);
- Serial.write('d'); //indica que a chave nao ligou com a tentativa de ligamento, envida o carcter d ao programa
- }
- }
- }
- else { // indica que a chave ja esta ligada e envia o caracter c
- delay(1000);
- Serial.write('c');
- }
- }
- break;
- case 3: // recebe do java o comando 3 para desligar a chave
- if (digitalRead(relechave) == HIGH)
- {
- while (digitalRead(relechave) == HIGH )
- {
- digitalWrite(relechave, LOW);
- delay(1000);
- if (digitalRead(relechave) == LOW)
- {
- delay(1000);
- Serial.write('e');
- }
- else
- {
- Serial.write('f'); // caracter que indicia que houve algum probllema e a tentativa de deslligar o rele nao concretizou
- }
- }
- }
- else {
- delay(1000);
- Serial.write('g');
- }
- break;
- case 4: //comando para ligar a partida
- if (digitalRead(relechave) == HIGH && digitalRead(relepartida) == LOW )
- {
- Serial.write('h'); //informa o app que a partida foi recebida
- digitalWrite(relepartida, HIGH);
- delay(1000);
- digitalWrite(relepartida, LOW);
- Serial.write('y');
- }
- else if(digitalRead(relechave) == LOW){
- delay(1000);
- Serial.write('i'); //nao e possivel dar partida chave desligada!
- }
- break;
- case 5: //caracter recebido para acionar a potencia
- if (digitalRead(relepotencia) == LOW)
- {
- while (digitalRead(relepotencia) == LOW )
- {
- digitalWrite(relepotencia, HIGH);
- delay(1000);
- if (digitalRead(relepotencia) == HIGH)
- {
- Serial.write('j'); // informa ao app que a potencia ligou
- }
- else
- {
- Serial.write('k'); //a algum problema a potencia nao ligou
- }
- }
- }
- else
- {
- delay(1000);
- Serial.write('s'); //a potenciao ja esta ligada
- }
- break;
- case 6: //caracter recebido do java para desligar a potencia
- if (digitalRead(relepotencia) == HIGH)
- {
- while (digitalRead(relepotencia) == HIGH )
- {
- digitalWrite(relepotencia, LOW);
- delay(1000);
- if (digitalRead(relepotencia) == LOW)
- {
- Serial.write('o'); //informa ao java que a potencia desligou
- }
- else
- {
- Serial.write('m'); //informa ao java que a potencia ainda esta ligada!
- }
- }
- }
- else {
- delay(1000);
- Serial.write('p'); //informa que a potencia ja foi desligada
- }
- break;
- /////////////////////// controle ligar som
- case 7:
- if (analogRead(voltsom) < 500)
- {
- while (analogRead(voltsom) < 500)
- {
- digitalWrite(ligarsom, HIGH);
- digitalWrite(ligarsom, LOW);
- delay(2000);
- if (analogRead(voltsom) > 500 )
- {
- Serial.write('r'); //informa ao java que o som ligou
- }
- else
- {
- Serial.write('s'); //informa ao java que o som nao ligou
- }
- }
- }
- else {
- delay(1000);
- Serial.write('t'); // caracter que indica ao java que o aparelho de som esta ligado
- }
- break;
- case 8:
- if (analogRead(voltsom) > 500)
- {
- while (analogRead(voltsom) > 500)
- {
- digitalWrite(ligarsom, HIGH);
- digitalWrite(ligarsom, LOW);
- delay(2000);
- if (analogRead(voltsom) < 500 )
- {
- Serial.write('u'); //informa ao java que o som desligou
- }
- else
- {
- Serial.write('v'); //informa ao java que o som nao desligou
- }
- }
- }
- else {
- delay(1000);
- Serial.write('w'); //caracter que indica ao java que o aparelho de som ja esta desligado
- }
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement