• 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
4 cyfrowy wyswietlacz + tmp 36
#1
witam

Chcialbym otrzymac kilka wskazowek co do programowania wyswietlacza, aby pokazywal temperature.
Z arduino pracuje od okolo roku ale tutaj chce zaznaczyc ze nie mialem wczesniej tyle problemow z napisaniem kodu.
Zgaduje, ze przyczyna jest oczywista i wszystkie wczesniejsze male projekty byly w zasadzie odporne na brak wiedzy w programowaniu.

Wyswietlacz jest podlaczony prawidlowo tzn. testowalem pojedyncze segmenty na wszystkich 4 cyfrach i wiem ze jest dzialaja jak nalezy. Wykorzystalem 8 rezystorow po stronie katody, podczas gdy anodami steruje przez 4 tranzystory 2n3906. Przegladnalem gotowe projekty dostepne w internecie, ale wiekszosc z nich jest na zbyt wysokim poziomie abym je mogl modyfikowac. W zwiazku z tym pomyslalem, ze moze tutaj ktos wczesniej mial doczynienia z podobnym projektem i moglby mi pomoc w tej kwestii.

   

Zalaczylem zdjecie z konstrukacja i bylbym strasznie wdzieczny za wszelkie sugestie odnosnie prostego kodu, ktory moglbym zrozumiec.

Pozdrawiam wszystkich serdecznie
 
Odpowiedź
#2
Poki co mam dzialajacy kod, ktory zwraca mi wartosc odczytu z sensora - ten dziala idealnie i jasno przedstawia jak podlaczylem wyswietlacz.
Kod:
int segA = 9;
int segB = 8;
int segC = 7;
int segD = 6;
int segE = 5;
int segF = 4;
int segG = 3;
int segH = 2;

double REF_VOLTAGE = 3.3;        

const int sensorPin = A2;

const int LEDpin = 10;

void setup() {      
         
pinMode(segA, OUTPUT);
pinMode(segB, OUTPUT);
pinMode(segC, OUTPUT);
pinMode(segD, OUTPUT);
pinMode(segE, OUTPUT);
pinMode(segF, OUTPUT);
pinMode(segG, OUTPUT);

pinMode(anode1, OUTPUT);
pinMode(anode2, OUTPUT);
pinMode(anode3, OUTPUT);
pinMode(anode4, OUTPUT);

pinMode(LEDpin, OUTPUT);

analogReference(EXTERNAL);

Serial.begin(9600);

void loop() {

displayNumber(millis()/1000);

float temperature = getVoltage(sensorPin);                  
temperature = (temperature - .5) * 100;                    
   
Serial.print(", degrees C: ");                            
Serial.println(temperature);    
}


float getVoltage(int pin)
{
 return (analogRead(pin) * .003222657);
 
}
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości