15-09-2020, 16:43
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
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);
}
}
}
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);
}
}
}