infatti mentre mangiavo pensavo a come far accendere un carattere alla volta, e siccome sono 8 pin sullo shift register da far accendere ho pernsato di inviare 00000001 poi 00000010 e ancora 00000100 e così via per far accendere i singoli caratteri, ho finito di scrivere il codice così
#define data 11
#define clock 12
#define segA 2
#define segB 3
#define segC 4
#define segD 5
#define segH 6
#define segG 7
#define segF 8
#define segE 9
byte car1 = B00000001;
byte car2 = B00000010;
byte car3 = B00000100;
byte car4 = B00001000;
byte car11 = B00010000;
byte car12 = B00100000;
byte car13 = B01000000;
byte car14 = B10000000;
void setup()
{
pinMode(clock, OUTPUT);
pinMode(data , OUTPUT);
pinMode(segA , OUTPUT);
digitalWrite(segA, LOW);
pinMode(segB , OUTPUT);
digitalWrite(segB, LOW);
pinMode(segC , OUTPUT);
digitalWrite(segC, LOW);
pinMode(segD , OUTPUT);
digitalWrite(segD, LOW);
pinMode(segH , OUTPUT);
digitalWrite(segH, LOW);
pinMode(segG , OUTPUT);
digitalWrite(segG, LOW);
pinMode(segF , OUTPUT);
digitalWrite(segF, LOW);
pinMode(segE , OUTPUT);
digitalWrite(segE, LOW);
}
void loop()
{
shiftOut(data, clock, LSBFIRST, car1);
delay(1);
shiftOut(data, clock, LSBFIRST, car2);
delay(1);
shiftOut(data, clock, LSBFIRST, car3);
delay(1);
shiftOut(data, clock, LSBFIRST, car4);
delay(1);
shiftOut(data, clock, LSBFIRST, car11);
delay(1);
shiftOut(data, clock, LSBFIRST, car12);
delay(1);
shiftOut(data, clock, LSBFIRST, car13);
delay(1);
shiftOut(data, clock, LSBFIRST, car14);
delay(1);
}
se aumento il delay vedo che si accende un carattere alla volta, metto su HIGH uno dei segmenti vedo che si spegne il segmento che voglio. ora devo capire come far visualizzare i valori dei sensori