Schaltet die LINE Sensoren ein -> die Sensoren sind auf LED gelegt. Durch anheben bzw am Tisch aufsetzen können die LED geschalten werden. Kannst auch mit dem Finger über die LINE Sensoren fahren. Durch drehen der MONTIERTEN Räder blinken die 4 INCREMENT LED's
Dependencies: mbed
Diff: main.cpp
- Revision:
- 0:a8a0195ed7dc
- Child:
- 1:d646fe79bc6c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Jan 26 21:46:32 2015 +0000 @@ -0,0 +1,44 @@ +/*********************************** +name: BERTL14_I2C_TEST +author: Enenkel modifizert von Wolfgang Raimann +description: + Die Taster vom I2C Expander werden direkt auf die LED's des Expander geschalten +***********************************/ + +#include "mbed.h" +I2C i2c(p28, p27); // die Adressen des I2C Busses am uP + // p28 -> SDA + // p27 -> SCL +int main() { + char btn = 0; + // **** Config PCA9555 I0 as output ******* + i2c.start(); + i2c.write(0x40); // Adresse des PCA9555 = 40 + // das letzte Bit = 0 -> schreiben 0040 0000 + i2c.write(0x06); // Befehl für das IO Port 0 -> siehe SCHEMA des PCA9555 + i2c.write(0x00); // Schalte alle Pins des Ports als OUTPUT + i2c.stop(); + + while(1) { + // Einlesen der Taster und speichern unter btn + i2c.start(); + /* Das letzte Bit der Adresse entscheidet + ob geschrieben oder gelesen wird. + 0 => schreiben; 1 => lesen */ + i2c.write(0x40); //Adresse & schreiben 0100 0000 + i2c.write(0x01); //aktivate Port 1 + + i2c.start(); + i2c.write(0x41); // Adresse & LESEN 0100 0001 + btn = i2c.read(0);// Einlesen des Ports 1 und speichern unter btn + i2c.stop(); + + // Schreiben auf Port 0 und damit auf die LED's + i2c.start(); + i2c.write(0x40); // Adresse & schreiben + i2c.write(0x02); // + i2c.write(~btn); // schriebn auf Port 0 den INVERSEN Wert von btn + i2c.stop(); + } +} +