60 nap alatt Arduino #36 - Shift regiszter

A "60 nap alatt Arduino" tanfolyam házi feladatai és közvetlen témái
Avatar
s.dvid
DrótVégénSzéndarab
Hozzászólások: 25
Csatlakozott: 2014. január 6. hétfő, 9:36

Re: 60 nap alatt Arduino #36 - Shift regiszter

Hozzászólás Szerző: s.dvid »

ugye van a kijelző, szám szerint 2.
Az első a tizes (=t) a második egyes (=e), majd a számozása (a,b,c,d,e...) A tizesnél ez csak "f"-ig megy, ami az 5-öt kódolja (mivel 10es ezért ez 50-et fog jelenteni, mert úgysem lesz nyáron sem 50 fok) :)
Avatar
s.dvid
DrótVégénSzéndarab
Hozzászólások: 25
Csatlakozott: 2014. január 6. hétfő, 9:36

Re: 60 nap alatt Arduino #36 - Shift regiszter

Hozzászólás Szerző: s.dvid »

sajna ugyanez a helyzet
"homero.ino: In function 'void loop()':
homero:41: error: 'ea' was not declared in this scope
homero:42: error: 'tnone' was not declared in this scope"

Kód: Egész kijelölése

int dataPin = 11; //74HC595 Data az Arduino Pin11-re kotve
int clockPin = 12; //74HC595 Clock az Arduino Pin12-re kotve
int latchPin = 13; //74HC595 Latch az Arduino Pin13-ra kotve
float tempC;  //homerseklet LM35-tel
int reading;
int tempPin = A0;

void setup() {
  pinMode(dataPin, OUTPUT); // Data lab kimenet
  pinMode(clockPin, OUTPUT); // Clock lab kimenet
  pinMode(latchPin, OUTPUT); // Latch lab kimenet
  analogReference(INTERNAL); //Homersekletnek
 //tizesek megadasa
 //1-8ig:    Bcde0bagf
  byte tnone = B00000000; //none
  byte tb = B00100001; //10
  byte tc = B01101110; //20
  byte td = B11001110; //30
  byte te = B10001011; //40
  byte tf = B11000111; //50

  //egyesek megadasa
  //1-8:     B0cdegfab
  byte enone = B00000000; // none
  byte ea = B01110111; // 0
  byte eb = B00010100; // 1
  byte ec = B00111011; // 2
  byte ed = B01101111; // 3
  byte ee = B01001101; // 4
  byte ef = B01101110; // 5
  byte eg = B01111110; // 6
  byte eh = B01000011; // 7
  byte ei = B01111111; // 8
  byte ej = B01101111; // 9
}
void loop(){
  reading = analogRead(tempPin); //Homerseklet beolvasasa
  tempC = reading / 9.31; //Homerseklet atvaltasa
  if (tempC == 0){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ea); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tnone); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
 if (tempC == 1){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, eb); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tnone); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 2){
.
.
.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: 60 nap alatt Arduino #36 - Shift regiszter

Hozzászólás Szerző: Robert »

Globalisan definiald a valtozot, ne a setup() alatt.
Avatar
s.dvid
DrótVégénSzéndarab
Hozzászólások: 25
Csatlakozott: 2014. január 6. hétfő, 9:36

Re: 60 nap alatt Arduino #36 - Shift regiszter

Hozzászólás Szerző: s.dvid »

Sikerült :) Köszi a segítséget!
Néha még nehéz átállni pythonról ott nincsenek ilyen gondok szerencsére :) Kár hogy nem lehet pythonbann írni :D
Mégegyszer köszi!

Aki pedig érdekelt egy LED kijelzős hőmérőben Shift regiszterrel annak itt a kód:
A kapcsolásnál pedig figyelni kell a szegmensek bekötésére. Nálam a következő a helyzet:
Egyesek helyén Q0-tól Q7ig: hcdegfab
Tizesek helyén Q0-tól Q7ig: cdehbagf

Kód: Egész kijelölése

int dataPin = 11; //74HC595 Data az Arduino Pin11-re kotve
int clockPin = 12; //74HC595 Clock az Arduino Pin12-re kotve
int latchPin = 13; //74HC595 Latch az Arduino Pin13-ra kotve
float tempC;  //homerseklet LM35-tel
int reading;
int tempPin = A0;


 //tizesek megadasa
 //1-8ig:    Bcde0bagf
  byte tnone = B00000000; //none
  byte tb = B00100001; //10
  byte tc = B01101110; //20
  byte td = B11001110; //30
  byte te = B10001011; //40
  byte tf = B11000111; //50

  //egyesek megadasa
  //1-8:     B0cdegfab
  byte enone = B00000000; // none
  byte ea = B01110111; // 0
  byte eb = B00010100; // 1
  byte ec = B00111011; // 2
  byte ed = B01101111; // 3
  byte ee = B01001101; // 4
  byte ef = B01101110; // 5
  byte eg = B01111110; // 6
  byte eh = B01000011; // 7
  byte ei = B01111111; // 8
  byte ej = B01101111; // 9

void setup() {
  pinMode(dataPin, OUTPUT); // Data lab kimenet
  pinMode(clockPin, OUTPUT); // Clock lab kimenet
  pinMode(latchPin, OUTPUT); // Latch lab kimenet
  analogReference(INTERNAL); //Homersekletnek
}
void loop(){
  reading = analogRead(tempPin); //Homerseklet beolvasasa
  tempC = reading / 9.31; //Homerseklet atvaltasa
  if (tempC == 0){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ea); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tnone); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
 if (tempC == 1){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, eb); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tnone); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 2){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ec); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tnone); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 3){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ed); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tnone); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 4){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ee); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tnone); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 5){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ef); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tnone); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 6){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, eg); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tnone); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 7){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, eh); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tnone); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 8){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ei); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tnone); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 9){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ej); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tnone); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 10){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ea); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tb); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 11){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, eb); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tb); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 12){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ec); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tb); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 13){
    shiftOut (dataPin, clockPin, LSBFIRST, ed); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tb); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 14){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ee); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tb); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 15){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ef); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tb); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 16){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, eg); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tb); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 17){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, eh); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tb); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 18){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ei); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tb); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 19){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ej); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tb); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 20){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ea); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tc); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 21){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, eb); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tc); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 22){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ec); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tc); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 23){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ed); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tc); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 24){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ee); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tc); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 25){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ef); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tc); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 26){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, eg); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tc); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 27){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, eh); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tc); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 28){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ei); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tc); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 29){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ej); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tc); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 30){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ea); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, td); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 31){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, eb); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, td); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 32){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ec); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, td); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 33){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ed); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, td); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 34){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ee); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, td); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 35){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ef); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, td); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 36){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, eg); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, td); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 37){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, eh); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, td); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 38){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ei); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, td); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 39){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ej); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, td); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 40){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ea); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, te); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 41){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, eb); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, te); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 42){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ec); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, te); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 43){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ed); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, te); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 44){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ee); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, te); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 45){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ef); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, te); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 46){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, eg); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, te); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 47){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, eh); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, te); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 48){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ei); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, te); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 49){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ej); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, te); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 50){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, ea); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tf); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
  if (tempC == 51){
    digitalWrite(latchPin, LOW);
    shiftOut (dataPin, clockPin, LSBFIRST, eb); // egyesekre meno jel kikuldese
    shiftOut (dataPin, clockPin, LSBFIRST, tf); // tizesekre meno jel kikuldese
    digitalWrite(latchPin, HIGH); // latch jel kikuldese
  }
}
Válasz küldése