@rz259
Ja bei dem zweiten if sollte "1" stehen und net "" 
Damit wollte ich genau das if(char1 == '1') umsetzen.
Mir war aber nicht bewusst, dass zwischen " und ' ein Unterschied ist 
Aber es funktioniert jetzt, freut mich total. Hab ewig gebraucht das Segment ausm alten Reciever zu baun und mich mit Shift-register und Multiplexing auseinanderzusetzen.
Thermometer funzt jetzt aber super 
Falls jemand genaueres wissen will hier mal der "Wilde" Code:
#include <Wire.h>
#include <Adafruit_BMP085.h>
#include <SoftwareSerial.h>
SoftwareSerial bluetooth(2, 3); // RX, TX
Adafruit_BMP085 bmp;
/*
billiges China Tempsensor mti Adadfruit libary an A4/A5
Shift Register HC595 wie angegeben
Bluetooth immer als Softserial an 2,3 :)
*/
//Pin connected to ST_CP of 74HC595
int latchPin = 4;
//Pin connected to SH_CP of 74HC595
int clockPin = 6;
////Pin connected to DS of 74HC595
int dataPin = 5;
int wechsel = 500;
int stelle3 = 9;
int stelle2 = 8;
int stelle1 = 7;
char value1 = 0;
char value2 = 0;
int tmp = 0;
String temp = "";
int char1 = 0;
int char2 = 0;
int frame = 5;
void setup() {
bluetooth.begin(9600);
Serial.begin(9600);
if (!bmp.begin()) {
Serial.println("Could not find a valid BMP085 sensor, check wiring!");
while (1) {}
}
//Shift-Register
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(stelle1, OUTPUT);
pinMode(stelle2, OUTPUT);
pinMode(stelle3, OUTPUT);
}
void loop() {
//Zahlenwert der Anzeige für Shift-Output umsetzen
if (value1 == '0') char1 = 20;
if (value2 == '0') char2 = 20;
if (value1 == '1') char1 = 215;
if (value2 == '1') char2 = 215;
if (value1 == '2') char1 = 76;
if (value2 == '2') char2 = 76;
if (value1 == '3') char1 = 69;
if (value2 == '3') char2 = 69;
if (value1 == '4') char1 = 135;
if (value2 == '4') char2 = 135;
if (value1 == '5') char1 = 37;
if (value2 == '5') char2 = 37;
if (value1 == '6') char1 = 36;
if (value2 == '6') char2 = 36;
if (value1 == '7') char1 = 23;
if (value2 == '7') char2 = 23;
if (value1 == '8') char1 = 4;
if (value2 == '8') char2 = 4;
if (value1 == '9') char1 = 5;
if (value2 == '9') char2 = 5;
/*if(char2 <11) char2 ++;
if(char2 == 10){
char2 = 0;
char1 = char1++;
} */
//Temp einlesen und Speichern in zwei Chars je nach Stelle
tmp = bmp.readTemperature(); //als Int einlesen
//Serial.print(tmp);
//Serial.print(" ");
temp = String(tmp); //als String speichern
Serial.print(temp);
Serial.print(" ");
value1= temp.charAt(0); //1stelle speichern
value2= temp.charAt(1); //2stelle speichern
Serial.print(value1);
Serial.print(value2);
//Shift-Register beschreiben
digitalWrite(stelle1, HIGH);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, char1);
digitalWrite(latchPin, HIGH);
delay(frame);
digitalWrite(stelle1,LOW);
digitalWrite(stelle2, HIGH);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, char2);
digitalWrite(latchPin, HIGH);
delay(frame);
digitalWrite(stelle2,LOW);
digitalWrite(stelle3, HIGH);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 60);
digitalWrite(latchPin, HIGH);
delay(frame);
digitalWrite(stelle3,LOW);
}
@uwefed
Ja stimmt, bekomme ihn als solchen, speicher ihn aber immer als int. Habs an der Stelle vergessen.
Vielen Dank für deine Anregung. Das hatte ich die ganze Zeit gesucht, weil ichs vorher schonmal so gesehen hatte, aber nicht mehr gefunden.
Werds bei Gelegenheit auch nochmal ausprobieren 