Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of _B15_T3_Line by
Revision 1:d646fe79bc6c, committed 2015-05-31
- Comitter:
- Enenkel
- Date:
- Sun May 31 16:34:40 2015 +0000
- Parent:
- 0:a8a0195ed7dc
- Child:
- 2:90c675f0505a
- Commit message:
- B15 Line Sensor Test
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Mon Jan 26 21:46:32 2015 +0000
+++ b/main.cpp Sun May 31 16:34:40 2015 +0000
@@ -1,15 +1,26 @@
/***********************************
-name: BERTL14_I2C_TEST
-author: Enenkel modifizert von Wolfgang Raimann
+name: BERTL15_LINE SENSOR_TEST
+author: Enenkel
description:
Die Taster vom I2C Expander werden direkt auf die LED's des Expander geschalten
***********************************/
-
#include "mbed.h"
+
+DigitalOut Von (P1_2); // Motor Spannung ON
+DigitalOut LineON (P1_16);// Line Sensor aktivieren
+DigitalIn OSI1 (P0_14); // OSI1
+DigitalIn OSI2 (P0_12);
+DigitalIn OSI3 (P0_16);
+DigitalIn OSI4 (P0_13);
+DigitalIn OSI5 (P0_22); // OSI5
I2C i2c(p28, p27); // die Adressen des I2C Busses am uP
// p28 -> SDA
// p27 -> SCL
+
+char anzeige;
+
int main() {
+ anzeige = 0x00; // Anzeige der LED's
char btn = 0;
// **** Config PCA9555 I0 as output *******
i2c.start();
@@ -20,24 +31,46 @@
i2c.stop();
while(1) {
+ anzeige = 0x00; // Anzeige LED'y auf 0 setzen
// Einlesen der Taster und speichern unter btn
i2c.start();
- /* Das letzte Bit der Adresse entscheidet
+ /* 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.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.write(0x41); // Adresse & LESEN 0100 0001
+ btn = i2c.read(0); // Einlesen des Ports 1 und speichern unter btn
i2c.stop();
-
+ // Auswertung der LINE SENSOREN
+ if (OSI1 == 1 ) // Line Sensor ganz LINKS
+ {
+ anzeige = anzeige & 0x80;
+ }
+ if (OSI2 == 1) // Line Sensor LINKS
+ {
+ anzeige = anzeige & 0x40;
+ }
+ if (OSI3 == 1) // Line Sensor RECHTS
+ {
+ anzeige = anzeige & 0x20;
+ }
+ if (OSI4 == 1) // Line Sensor ganz RECHT
+ {
+ anzeige = anzeige & 0x08;
+ }
+ if (OSI5 == 1) // Line Sensor MITTE
+ {
+ anzeige = anzeige & 0x40;
+ }
+
// 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.write(0x40); // Adresse & schreiben
+ i2c.write(0x02); //
+ i2c.write(~anzeige); // schriebn auf Port 0 den INVERSEN Wert von btn
i2c.stop();
}
}
