25.04.17
Dependencies: mbed
Fork of Sensortest by
Diff: main.cpp
- Revision:
- 0:fb3f7c677c18
- Child:
- 1:82a1ebe6ce11
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Apr 13 08:30:35 2017 +0000 @@ -0,0 +1,53 @@ +#include "mbed.h" +#include "IRSensor.h" + +//E. Hess +//Sensortest + +DigitalOut led(LED1); //Zustands-LED: Grüne LED für Benutzer + +AnalogIn distance(PB_1); //Input der Sensoren +DigitalOut enableSensor(PC_1); //Aktivierung der IRSensoren +DigitalOut bit0(PH_1); //Ansteuerung der Sensoren 0-5 mit 3 Bits +DigitalOut bit1(PC_2); +DigitalOut bit2(PC_3); +IRSensor sensors[6]; //Erstellt 6 IRSensor-Objekte als Array + +DigitalOut leds[] = { PC_8, PC_6, PB_12, PA_7, PC_0, PC_9 }; //LED-Outputs der Sensoren + +//Timer-Objekt für Distanzsensor +Ticker t1; + + +//Titel printf() +void title() { + printf("\n < ^ \t\t ^ \t\t ^ > \t\t\t"); + printf(" < _ \t\t _ \t\t _ > \n\r"); +} + + +int main() { + float sensorValue[6] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}; //Array der 6 Sensorenwerte + + t1.attach(&title, 5); //Betitelung der Sensorwerte alle 5 Sekunden + + //Initialisiert Distanzsensoren + for( int i = 0; i < 6; i++) { + sensors[i].init(&distance, &bit0, &bit1, &bit2, i); + } + enableSensor = 1; //Aktiviert die IRSensoren + + while(1) { + for(int i = 0; i < 6; i++){ //Setzt alle Sensorwerte auf NULL + sensorValue[i] = 0.0f; + } + for(int i = 0; i < 10; i++){ //Addiert pro Sensor 10 Werte zusammen (zur Auskorrigierung von Fehlerwerten) + for(int i = 0; i < 6; i++){ + sensorValue[i] += sensors[i].read(); + } + wait( 0.01f ); + } + printf("%f\t%f\t%f\t\t", sensorValue[5], sensorValue[0], sensorValue[1]); //Plottet die oberen Sensoren + printf("%f\t%f\t%f\n\r", sensorValue[4], sensorValue[3], sensorValue[2]); //Plottet die unteren Sensoren + } +}