• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Program do termometru binarnego
#1
Witam. Otóż chciałbym zbudować prosty termometr cyfrowy który będzie wyświetlał temperature w postaci binarnej. Tzn jest 5 diód czyli zakres do 64 stopni celclusza. Udało mi się rozgryźć kod w jaki sposób zmusić arduino do wyświetlenia liczb w postaci binarnej na diodach. Problem mam z kodem żeby dało się zmienić licznik na wartość temperatury z układu LM35. Chodzi mi o to żeby tak jakby zmienna BYTE była taka jak temperatura. Kod wgrałęm ale nie działa. Jeśli ktoś byłby w stanie pomóc to byłbym wdzięczny Smile



int ledPin[] = {7,8,9,10,11};
int val;
int tempPin = 1;

void setup()
{
  for (int i =0;i<5;i++)
  {
    pinMode(ledPin[i], OUTPUT);
  }
  pinMode(4, INPUT_PULLUP);
}

void loop()
{
  for (byte counter =0;counter<=32;counter)
  {
    displayBinary(counter);
    delay(500);
    val = analogRead(tempPin);
  float mv = ( val/1024.0)*5000;      // w tym miejscu coś trzeba zmodyfikować ale nie wiem co
  float cel = mv/10;
  delay(500);
  cel = counter;            
  }
 
}

void displayBinary(byte numToShow)
{
  for (int i =0;i<5;i++)
  {
    if (bitRead(numToShow, i)==1)
    {
      digitalWrite(ledPin[i], HIGH);
    }
    else
    {
      digitalWrite(ledPin[i], LOW);
    }
  }
 


}
 
Odpowiedź
#2
Coś mi tu nie gra np 64stC to 7 bitów, a ty odczytujesz 5 wiec twoje do 64 mija się z celem. 5 bitów (led) to max 31stC wskaże..
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#3
(15-09-2020, 21:54)Jarewa0606 napisał(a): Coś mi tu nie gra np 64stC to 7 bitów, a ty odczytujesz 5 wiec twoje do 64 mija się z celem.  5 bitów (led) to max 31stC wskaże..
Tak wiem o co chodzi. Wystarczy tam tą piątke [for (int i =0;i<5;i++)] zmienić na dowolną inna liczbę żeby uzyskać więcej bitów. Mi chodzi o to co zrobić żeby program wyświetlał odczyt z LM35 na żywo w postaci binarnej
 
Odpowiedź
#4
Przelicznik jest dobry, ten for jest trochę nie za bardzo i bez sensu

cel = counter;

powinno być

counter = cel;
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości