int RAM_Addr0 = A0; int RAM_Addr1 = A1; int RAM_Addr2 = A2; int RAM_Addr3 = A3; int RAM_Addr4 = A4; int RAM_Addr5 = A5; int RAM_Addr6 = A6; int RAM_Addr7 = A7; int RAM_Data0 = A8; int RAM_Data1 = A9; int RAM_Data2 = A10; int RAM_Data3 = A11; int RAM_Data4 = A12; int RAM_Data5 = A13; int RAM_Data6 = A14; int RAM_Data7 = A15; int analogPin_H = 650; int val0 = 0; // Variable, die den gelesenen Wert speichert int val1 = 0; // Variable, die den gelesenen Wert speichert int val2 = 0; // Variable, die den gelesenen Wert speichert int val3 = 0; // Variable, die den gelesenen Wert speichert int val4 = 0; // Variable, die den gelesenen Wert speichert int val5 = 0; // Variable, die den gelesenen Wert speichert int val6 = 0; // Variable, die den gelesenen Wert speichert int val7 = 0; // Variable, die den gelesenen Wert speichert void readBus(int bus_size, char debug) { unsigned char byte = 0; for(int i=0;i <= bus_size;i++) { switch(i) { case 0: val0 = analogRead(RAM_Data0); // Pin einlesen if(debug == 0x01) Serial.println(val0); if(val0 > analogPin_H) byte += 0x01; break; case 1: val1 = analogRead(RAM_Data1);// Pin einlesen if(debug == 0x01) Serial.println(val1); if(val1 > analogPin_H) byte += 0x02; break; case 2: val2 = analogRead(RAM_Data2); // Pin einlesen if(debug == 0x01) Serial.println(val2); if(val2 > analogPin_H) byte += 0x04; break; case 3: val3 = analogRead(RAM_Data3); // Pin einlesen if(debug == 0x01) Serial.println(val3); if(val3 > analogPin_H) byte += 0x08; break; case 4: val4 = analogRead(RAM_Data4); // Pin einlesen if(debug == 0x01) Serial.println(val3); if(val4 > analogPin_H) byte += 0x10; break; case 5: val5 = analogRead(RAM_Data5); // Pin einlesen if(debug == 0x01) Serial.println(val3); if(val5 > analogPin_H) byte += 0x20; break; case 6: val6 = analogRead(RAM_Data6); // Pin einlesen if(debug == 0x01) Serial.println(val3); if(val6 > analogPin_H) byte += 0x40; break; case 7: val7 = analogRead(RAM_Data7); // Pin einlesen if(debug == 0x01) Serial.println(val3); if(val7 > analogPin_H) byte += 0x80; break; } } Serial.print("0x"); Serial.println(byte, HEX); } void readRAMAddr(int bus_size, char debug) { unsigned char byte = 0; for(int i=0;i <= bus_size;i++) { switch(i) { case 0: val0 = analogRead(RAM_Addr0); // Pin einlesen if(debug == 0x01) Serial.println(val0); if(val0 > analogPin_H) byte += 0x01; break; case 1: val1 = analogRead(RAM_Addr1);// Pin einlesen if(debug == 0x01) Serial.println(val1); if(val1 > analogPin_H) byte += 0x02; break; case 2: val2 = analogRead(RAM_Addr2); // Pin einlesen if(debug == 0x01) Serial.println(val2); if(val2 > analogPin_H) byte += 0x04; break; case 3: val3 = analogRead(RAM_Addr3); // Pin einlesen if(debug == 0x01) Serial.println(val3); if(val3 > analogPin_H) byte += 0x08; break; case 4: val4 = analogRead(RAM_Addr4); // Pin einlesen if(debug == 0x01) Serial.println(val3); if(val4 > analogPin_H) byte += 0x10; break; case 5: val5 = analogRead(RAM_Addr5); // Pin einlesen if(debug == 0x01) Serial.println(val3); if(val5 > analogPin_H) byte += 0x20; break; case 6: val6 = analogRead(RAM_Addr6); // Pin einlesen if(debug == 0x01) Serial.println(val3); if(val6 > analogPin_H) byte += 0x40; break; case 7: val7 = analogRead(RAM_Addr7); // Pin einlesen if(debug == 0x01) Serial.println(val3); if(val7 > analogPin_H) byte += 0x80; break; } } Serial.print("0x"); Serial.println(byte, HEX); } void setup() { // put your setup code here, to run once: pinMode(RAM_Addr0, INPUT); pinMode(RAM_Addr1, INPUT); pinMode(RAM_Addr2, INPUT); pinMode(RAM_Addr3, INPUT); pinMode(RAM_Addr4, INPUT); pinMode(RAM_Addr5, INPUT); pinMode(RAM_Addr6, INPUT); pinMode(RAM_Addr7, INPUT); pinMode(RAM_Data0, INPUT); pinMode(RAM_Data1, INPUT); pinMode(RAM_Data2, INPUT); pinMode(RAM_Data3, INPUT); pinMode(RAM_Data4, INPUT); pinMode(RAM_Data5, INPUT); pinMode(RAM_Data6, INPUT); pinMode(RAM_Data7, INPUT); Serial.begin(9600); } void loop() { //Serial.println("Starte Programm:"); delay(1000); Serial.print("Lese: "); readBus(8, 0x00); Serial.print("an Adresse: "); readRAMAddr(8,0x00); Serial.println(); if (Serial.available() > 0) { // Lies das eingehende Byte: //SerialIncoming = Serial.read(); String buffer = Serial.readString(); // Ausgeben: Serial.print("I received: "); Serial.println(buffer); if(buffer.compareTo("setdata\n") == 0) { Serial.println("Schreibe 0xFF"); pinMode(RAM_Data0, OUTPUT); digitalWrite(RAM_Data0, HIGH); pinMode(RAM_Data1, OUTPUT); digitalWrite(RAM_Data1, HIGH); pinMode(RAM_Data2, OUTPUT); digitalWrite(RAM_Data2, HIGH); pinMode(RAM_Data3, OUTPUT); digitalWrite(RAM_Data3, HIGH); pinMode(RAM_Data4, OUTPUT); digitalWrite(RAM_Data4, HIGH); pinMode(RAM_Data5, OUTPUT); digitalWrite(RAM_Data5, HIGH); pinMode(RAM_Data6, OUTPUT); digitalWrite(RAM_Data6, HIGH); pinMode(RAM_Data7, OUTPUT); digitalWrite(RAM_Data7, HIGH); Serial.println("Warte 4 Sekunden"); delay(4000); pinMode(RAM_Data0, INPUT); pinMode(RAM_Data1, INPUT); pinMode(RAM_Data2, INPUT); pinMode(RAM_Data3, INPUT); pinMode(RAM_Data4, INPUT); pinMode(RAM_Data5, INPUT); pinMode(RAM_Data6, INPUT); pinMode(RAM_Data7, INPUT); } } //Serial.println(analogRead(RAM_Data0)); // put your main code here, to run repeatedly: }