Sari la conținut
ELFORUM - Forumul electronistilor

problema afisare numarator pe lcd 16x2


bogdan546

Postări Recomandate

Am realizat un numarator folosind un encoder cu afisare pe serial si pe un lcd 16x2 . Problema este ca pe serial functioneza corect, dar pe lcd in momentul cand decrementez sub -10 sau incementez peste 10 ramane ultima coloana 0 si in loc sa afiseze la decementare 9,8,7 ...0 afiseaza 09, 08,07 ...01  .

 

#include <LiquidCrystal.h>
const int rs=12, en=11, d4=5, d5=4, d6=3, d7=2;
LiquidCrystal lcd(rs,en,d4,d5,d6,d7);
 int counter = 0; 
 int counter1 = 0;
 int currentStateCLK;
 int previousStateCLK; 
 String encdir ="";
 void setup() { 
   // setare encoder ca intrare D6 si D7 
  DDRD &= B00000000; 
   // setare pini iesire leduri D8 si D9 
  DDRB |=B00000011;
   // Setup Serial Monitor
   Serial.begin (9600);
   lcd.begin(16,2);
   // citire initiala a  inputCLK
   previousStateCLK = (PIND >>6 & B01000000 >> 6);
 } 
 void loop() { 
  // citire curenta  inputCLK
   currentStateCLK = (PIND >> 6 & B01000000 >> 6);  
   if (currentStateCLK != previousStateCLK){ 
     if ((PIND >> 7 & B10000000 >> 7) != currentStateCLK) { 
       counter --;
       counter1 --;
       encdir ="CCW";
       PORTB &= ~B00000001;
       PORTB |= B00000010;
     } else {
       counter ++;
       counter1 ++;
       encdir ="CW";
       PORTB &= ~B00000010;
       PORTB |= B00000001;
     }
     Serial.print("Directie: ");
     Serial.print(encdir);
     Serial.print(" -- Valoare: ");
     Serial.println(counter);
      lcd.setCursor(0,1);
      lcd.print("counter1= ");
      lcd.print(counter1);
     
   } 
   
   previousStateCLK = currentStateCLK; 
 }

 

Link spre comentariu
  • Răspunsuri 0
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

Zile populare

Top autori în acest subiect

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări