Schaltet die Motoren des B17 ein und aus (je 1 sec)
Fork of _B16_T3_Motor by
Diff: main.cpp
- Revision:
- 1:0f7c167a4f97
- Parent:
- 0:a8a0195ed7dc
- Child:
- 2:416e90645a22
--- a/main.cpp Mon Jan 26 21:46:32 2015 +0000 +++ b/main.cpp Sun May 31 16:35:31 2015 +0000 @@ -1,44 +1,44 @@ /*********************************** -name: BERTL14_I2C_TEST -author: Enenkel modifizert von Wolfgang Raimann +name: BERTL_2015_MOTOR_TEST +author: Gottfried Enenkel HTL BULME +email: ene@bulme.at 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(); + Der BERTL fährt 1 sec lang VORWÄRTS! + Danach steht er für 1 sec + + Wenn der Motor richtig eingebaut ist, + steht über dem Linken Anschluß ein PLUS + Wenn sich der BERTL dreht, ist ein Motor verkehrt eingebaut. - 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(); - } -} +***********************************/ +#include "mbed.h" + +// ************ DEKLARATIONEN ************** +DigitalOut Von (P1_2); // Motor Spannung ab BERTL15 nötig ! +DigitalOut MotorL_EN(P1_15); // Enable +DigitalOut MotorL_FORWARD(P1_1); // Forwerts +DigitalOut MotorL_REVERSE(P1_0); // Rückwerts + +DigitalOut MotorR_EN(P0_21); //Die Leitung führt zum Pin PO_21 am Prozessor +DigitalOut MotorR_FORWARD(P1_3); //Die Leitung führt zum Pin P1_3 am Prozessor +DigitalOut MotorR_REVERSE(P1_4); +// ************* Hauptprogramm ************ +int main() { // Start Hauptprogramm + Von=1; // Motor Spannung EIN + MotorR_EN=MotorL_EN=1; // Beide Motoren ENABLE + while(1) { // Anfang der Schleife (ohne Abbruch) + MotorR_FORWARD = MotorL_FORWARD = 1; // Beide Motoren vorwärts EIN + wait (1.0); // warte 1 Sekunde + MotorR_FORWARD = MotorL_FORWARD = 0; // Motoren AUS + wait (1.0); // warte 1 Sekunde + } // Springe zum Anfang der Schleife +} // Ende des Hauptprogrammes + +// ************** ENDE ************* + + + + + +