collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[27 de Março de 2024, 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Desenvolvimento Automoção Residencial (Placa de Reles)  (Lida 3822 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline luisjustin

  • Mini Robot
  • *
  • Mensagens: 161
    • Meu site
Desenvolvimento Automoção Residencial (Placa de Reles)
« em: 06 de Julho de 2012, 23:06 »
Olá, a todos do forum, estou tendo um problema em fazer com que quando eu desconectar do console serial os reles que eu acionei continuem ligado. esse é meu problema o código é este aqui:
Código: [Seleccione]
char Comando[2] = "";
char Status[11] = "0000000000"; //{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

void setup(){
  Serial.begin(9600);
  Serial.println("---------------------------------------");
  Serial.println("---->  Relay Board 3.0 Iniciando  <----");
  Serial.println("---->  Serial: #3298108301838108  <----");
  Serial.println("---------------------------------------");
  pinMode(A0, OUTPUT);
  pinMode(A1, OUTPUT);
  pinMode(A2, OUTPUT);
  pinMode(A3, OUTPUT);
  pinMode(A4, OUTPUT);
  pinMode(A5, OUTPUT);
  pinMode(A6, OUTPUT);
  pinMode(A7, OUTPUT);
  pinMode(A8, OUTPUT);
  pinMode(A9, OUTPUT);
}

void loop(){
  if(Serial.available() > 0){
    Comando[1] = Comando[2];
    Comando[2] = Serial.read();
    if(Comando[1] == '#'){
      switch(Comando[2]){
         /*
          * Exibir Array;
          */
        case 'R':
          Serial.println(Status);
        break;
         /*
          * Abrir portoes e etc...
          */
        case 'A':
          digitalWrite(A0, HIGH);
          Status[1] = 1;
          delay(1000);
          digitalWrite(A0, LOW);
          Status[1] = 0;
         break;
         case 'B':
           digitalWrite(A1, HIGH);
          Status[2] = 1;
          delay(1000);
          digitalWrite(A1, LOW);
          Status[2] = 0;
         break;
         /*
          * Sequencia de letras maiusculas
          */
         case 'C':
           Status[3] = 1;
         break;
         case 'D':
           Status[4] = 1;
         break;
         case 'E':
           Status[5] = 1;
         break;
         case 'F':
           Status[6] = 1;
         break;
         case 'G':
           Status[7] = 1;
         break;
         case 'H':
           Status[8] = 1;
         break;
         case 'I':
           Status[9] = 1;
         break;
         case 'J':
           Status[10] = 1;
         break;
         /*
          * Sequencia de letras minusculas
          */
         case 'c':
           Status[3] = 0;
         break;
         case 'd':
           Status[4] = 0;
         break;
         case 'e':
           Status[5] = 0;
         break;
         case 'f':
           Status[6] = 0;
         break;
         case 'g':
           Status[7] = 0;
         break;
         case 'h':
           Status[8] = 0;
         break;
         case 'i':
           Status[9] = 0;
         break;
         case 'j':
           Status[10] = 0;
         break;
      }
    }
  }
   if(Status[3] == 1) { digitalWrite(A2, HIGH); } else { digitalWrite(A2, LOW); }
   if(Status[4] == 1) { digitalWrite(A3, HIGH); } else { digitalWrite(A3, LOW); }
   if(Status[5] == 1) { digitalWrite(A4, HIGH); } else { digitalWrite(A4, LOW); }
   if(Status[6] == 1) { digitalWrite(A5, HIGH); } else { digitalWrite(A5, LOW); }
   if(Status[7] == 1) { digitalWrite(A6, HIGH); } else { digitalWrite(A6, LOW); }
   if(Status[8] == 1) { digitalWrite(A7, HIGH); } else { digitalWrite(A7, LOW); }
   if(Status[9] == 1) { digitalWrite(A8, HIGH); } else { digitalWrite(A8, LOW); }
   if(Status[10] == 1) { digitalWrite(A9, HIGH); } else { digitalWrite(A9, LOW); }
}
« Última modificação: 06 de Julho de 2012, 23:10 por luisjustin »

Offline luisjustin

  • Mini Robot
  • *
  • Mensagens: 161
    • Meu site
Re: Desenvolvimento Automoção Residencial (Placa de Reles)
« Responder #1 em: 06 de Julho de 2012, 23:17 »
Por favor alguém me ajude  :) estou tentando arrumar isso a mais de 1 mês no código antigo e hoje eu refiz o codigo e não consegui alguém me ajude por favor :)

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Desenvolvimento Automoção Residencial (Placa de Reles)
« Responder #2 em: 06 de Julho de 2012, 23:27 »
O problema é que quando ligas o cabo usb ao pc, o arduino faz reset automaticamente, provavelmente é esse o teu problema.
Avr fanboy

Offline luisjustin

  • Mini Robot
  • *
  • Mensagens: 161
    • Meu site
Re: Desenvolvimento Automoção Residencial (Placa de Reles)
« Responder #3 em: 06 de Julho de 2012, 23:28 »
Entendi mas mesmo que eu não ligue pelo programa do arduino vamos dizer que eu crio meu programa ele vai fazer reset igual ?

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Desenvolvimento Automoção Residencial (Placa de Reles)
« Responder #4 em: 06 de Julho de 2012, 23:33 »
Sim, mas para eliminar esse problema, pode meter uma resistencia de 500ohms entre o reset e os 5v na placa do arduino, só que quando quiser programar a placa tem de tirar essa resistencia ou carregar no botão de reset.
Avr fanboy

Offline luisjustin

  • Mini Robot
  • *
  • Mensagens: 161
    • Meu site
Re: Desenvolvimento Automoção Residencial (Placa de Reles)
« Responder #5 em: 06 de Julho de 2012, 23:44 »
Não pode ser um resistor de 1K ? por que estou sem o resistor de 500Ohms

Offline luisjustin

  • Mini Robot
  • *
  • Mensagens: 161
    • Meu site
Re: Desenvolvimento Automoção Residencial (Placa de Reles)
« Responder #6 em: 07 de Julho de 2012, 00:52 »
Coloquei um de 480Ohms mas não funcionou fecho o console do arduino ele reinicia a placa as vezes a luz não apaga quando eu fecho e sim quando eu abro ele novamente

Offline poliveira1978

  • Mini Robot
  • *
  • Mensagens: 335
Re: Desenvolvimento Automoção Residencial (Placa de Reles)
« Responder #7 em: 07 de Julho de 2012, 01:19 »
se usar um software tipo putty e desligar o DTR penso que deixa de fazer reset.