Go Down

Topic: Problem with my serial monitor (Read 1 time) previous topic - next topic

GabyC89

I have problems in communication between the arduino and my computer, specifically with the serial monitor!

I, for example, press the button to increment a variable, but the vast majority of the time, it does not increment or decrement.

This is an example of part of the program for incrementing and decrementing.
Not taking into account the variables that have no interest for.

Principal:

Code: [Select]

int contaa = 0;
int contab = 0;
int contac = 0;
int contad = 0;
int a = 0;
int b = 0;
int c = 0;
int d = 3;
int e = 3;
int n = 0;

//---------------------------------------------------------------------------------------------
//Funcão principal //Funcão principal //Funcão principal //Funcão principal //Funcão principal//
//---------------------------------------------------------------------------------------------
void setup()
{
  Serial.begin(9600);   //Inicia comunicación serial
  pinMode(0,INPUT); //Sensor Toque a incremental
  pinMode(1,INPUT); //Sensor Toque a decremental
  pinMode(2,INPUT); //Sensor Toque b incremental
  pinMode(3,INPUT); //Sensor Toque b decremental
  pinMode(4,INPUT); //Sensor Toque c incremental
  pinMode(5,INPUT); //Sensor Toque c decremental
  pinMode(6,INPUT); //Sensor Toque d incremental
  pinMode(7,INPUT); //Sensor Toque d decremental
  pinMode(8,OUTPUT); //SSD a
  pinMode(9,OUTPUT); //SSD b
  pinMode(10,OUTPUT); //SSD c
  pinMode(11,OUTPUT); //SSD d
  pinMode(12,OUTPUT); //Led a
  pinMode(13,OUTPUT); //Led b
  pinMode(14,OUTPUT); //Led c
  pinMode(15,OUTPUT); //Led d
}

void loop()
{
  contagem();
}


Incrementing and desrementing part:

Code: [Select]

//-------------------------------------------------------------------------------------------------------------------------------------//
// Contadores de semáforos // Contadores de semáforos // Contadores de semáforos // Contadores de semáforos // Contadores de semáforos //
//-------------------------------------------------------------------------------------------------------------------------------------//
void contagem()
{         

  // Contador A  // Contador A  // Contador A  // Contador A  // Contador A
  //Rua da Central de camionagem
  if ( digitalRead(0) == HIGH )
  {
      // flanco descendente
      if ( digitalRead(0) == LOW )
      {
         contaa++;               //Incrementa o contador
         Serial.print("Contador a = ");
         Serial.println(contaa); //Escrever na consola o valor
         delay (100);           // Retardo
      }
  }
    if ( digitalRead(1) == HIGH )
  {
      //
      if ( digitalRead(1) == LOW )
      {
         contaa--;               
         Serial.print("Contador a = ");
         Serial.println(contaa);
         delay (100);           
      }
  }
 
  // Contador B  // Contador B  // Contador B  // Contador B  // Contador B
  //Rua da ANIL
  if ( digitalRead(2) == HIGH )
  {
      if ( digitalRead(2) == LOW )
      {
         contab++;               
         Serial.print("Contador b = ");
         Serial.println(contab);
         delay (100);       
      }
  }
    if ( digitalRead(3) == HIGH )
  {
      //
      if ( digitalRead(3) == LOW )
      {
         contab--;               
         Serial.print("Contador b = ");
         Serial.println(contab);
         delay (100);           
      }
  }
 
  // Contador C  // Contador C  // Contador C  // Contador C  // Contador C
  // Rua do Continente
  if ( digitalRead(4) == HIGH )
  {
      if ( digitalRead(4) == LOW )
      {
         contac++;           
         Serial.print("Contador c = ");
         Serial.println(contac);
         delay (100);         
      }
  }
    if ( digitalRead(5) == HIGH )
  {
      if ( digitalRead(5) == LOW )
      {
         contac--;               
         Serial.print("Contador c = ");
         Serial.println(contac);
         delay (100);           
      }
  }
 
  // Contador D  // Contador D  // Contador D  // Contador D  // Contador D
  // Rua das escolas
  if ( digitalRead(6) == HIGH )
  {
      if ( digitalRead(6) == LOW )
      {
         contad++;               
         Serial.print("Contador d = ");
         Serial.println(contad);
         delay (100);         
      }
  }
    if ( digitalRead(7) == HIGH )
  {
      if ( digitalRead(7) == LOW )
      {
         contad--;               
         Serial.print("Contador d = ");
         Serial.println(contad);
         delay (100);           
      }
  }
}


I need help urgently, for this problem

retrolefty

Have you wired up pull-down resistor for your button input pins?

Lefty

GabyC89


Have you wired up pull-down resistor for your button input pins?

Lefty


Yes, I also have use pinMode "INPUT_PULLUP", but this not resolve my problem...

retrolefty



Have you wired up pull-down resistor for your button input pins?

Lefty


Yes, I also have use pinMode "INPUT_PULLUP", but this not resolve my problem...


Well you can't have both pull-ups and pull-downs used on the same input pin at the same time. Can you describe in detail the complete wiring of a typical button switch you are using and the pinMode command you use to support the button.

All I see in your posted sketch is:  pinMode(0,INPUT);

Lefty

retrolefty

Also your software logic on reading inputs seems to me to be flawed:

Quote

if ( digitalRead(7) == HIGH )
  {
      if ( digitalRead(7) == LOW )
      {
         contad--;               
         Serial.print("Contador d = ");
         Serial.println(contad);
         delay (100);           
      }
  }


That logic tells me if the switch is High do nothing, if it's Low do nothing also.

Lefty

Go Up