byte _7SEG[8] = { 13,12,11,10,9,8,7,6 } ;
const char SEG7[ ] = {
0b00111111, 0b00000110, 0b01011011, 0b01001111, // 0123
0b01100110, 0b01101101, 0b01111101, 0b00000111, // 4567
0b01111111, 0b01101111, 0b01110111, 0b01111100, // 89Ab
0b00111001, 0b01011110, 0b01111001, 0b01110001, // CdEF
0b01110110, 0b00111000, 0b01110011, 0b01000000,0b00000000};// HLP-
// Prototypendeklaration:
void trigger( byte pin );
void loadBUS( byte value );
void HELP();
void setup()
{
for( byte i = 0 ; i < 16 ; i++ )
{
pinMode( i, OUTPUT);
}
pinMode( 16, INPUT);
pinMode( 17, INPUT);
pinMode( 18, INPUT);
pinMode( 19, INPUT);
//Serial.begin(9600);
}
void loop()
{
while( 1 )
{
Temp_einlesen (16,8,9);
Temp_einlesen (17,10,11);
Temp_einlesen (18,12,13);
Temp_einlesen (19,14,15);
}
}
void Temp_einlesen (int wert, int pin1, int pin2)
{
int zahl = analogRead(wert);
int temp = map(zahl,20,358,-40,125);
if(temp > 9 and temp < 100)
{
loadBUS(SEG7[temp/10]);
trigger(pin1);
loadBUS(SEG7[temp%10]);
trigger(pin2);
}
else if(temp < 10 and temp > -1)
{
loadBUS(SEG7[20]);
trigger(pin1);
loadBUS(SEG7[temp%10]);
trigger(pin2);
}
else if(temp > -10 and temp < 0)
{
loadBUS(SEG7[19]);
trigger(pin1);
//loadBUS(SEG7[(-1)*(temp)%10]);
loadBUS(SEG7[abs(temp)%10]);
trigger(pin2);
}
else if(temp < -9)
{
loadBUS(SEG7[17]);
trigger(pin1);
loadBUS(SEG7[0]);
trigger(pin2);
}
else if(temp > 100)
{
loadBUS(SEG7[16]);
trigger(pin1);
loadBUS(SEG7[1]);
trigger(pin2);
}
}
void trigger( byte pin )
{
digitalWrite(pin,LOW);
delay(5);
digitalWrite(pin,HIGH);
}
void loadBUS( byte value )
{
for( byte i = 0; i< 8 ; i++ )
digitalWrite( i, bitRead( value, i ));
}