Hi, ich habe ein Schulprojekt und wollte dies mit Arduino machen, es geht darum eine Tankstelle zu simulieren. Ich habe ein Wassersensor und je nach dem ob der Behälter voll oder leer ist leuchtet eine LED grün oder rot und dazu habe ich auch ein Ultraschall Sensor mit diesem wollte ich später die Preisstufen Billig, mittel & teuer festlegen. Der Wert am Anfang #define PIN_Trigger 41 stimmt deshalb nicht.
Ich wollte erstmal das die 7 Segment Anzeige läuft. Wenn ich das Programm einzeln hochlade geht's aber sobald ich Wassersensor usw. einbinde geht's leider nicht mehr. Weiß jemanden wieso?
Die Anzeige blinkt nur an den einzelnen Segmenten einzeln abwechselnd.
Hier mein Programm:
#include "SevSeg.h" //Die vorher hinzugefügte Library laden
SevSeg sevseg; //Ein sieben Segment Objekt initialisieren
#define POWER_PIN 25
#define SIGNAL_PIN A5
int RELAY_PIN =22;
int LEDGRUEN_PIN =23;
int LEDROT_PIN = 24;
int value = 0; // variable to store the sensor value
#define PIN_TRIGGER 41
#define PIN_ECHO 40
const int SENSOR_MAX_RANGE = 300; // in cm
unsigned long duration;
unsigned int distance;
void setup()
{
byte numDigits = 4; //Hier wird die Anzahl der Ziffern angegeben
byte digitPins[] = {2, 3, 4, 5}; //Die Pins zu den Ziffern werden festgelegt
byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13}; //Die Pins zu den //Segmenten werden festgelegt
sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins);
Serial.begin(9600);
pinMode(PIN_TRIGGER, OUTPUT);
pinMode(PIN_ECHO, INPUT);
Serial.begin(9600);
pinMode(POWER_PIN, OUTPUT); // configure D7 pin as an OUTPUT
pinMode(RELAY_PIN, OUTPUT);
pinMode(LEDGRUEN_PIN, OUTPUT);
pinMode(LEDROT_PIN, OUTPUT);
digitalWrite(POWER_PIN, LOW); // turn the sensor OFF
}
void loop()
{
digitalWrite(PIN_TRIGGER, LOW);
delayMicroseconds(2);
digitalWrite(PIN_TRIGGER, HIGH);
delayMicroseconds(10);
duration = pulseIn(PIN_ECHO, HIGH);
distance = duration/58;
if (distance > SENSOR_MAX_RANGE || distance <= 0)
{
Serial.println("Out of sensor range!");
} else {
Serial.println("Distance to object: " + String(distance) + " cm");
}
delay(100);
digitalWrite(POWER_PIN, HIGH); // turn the sensor ON
delay(10); // wait 10 milliseconds
value = analogRead(SIGNAL_PIN); // read the analog value from sensor
digitalWrite(POWER_PIN, LOW); // turn the sensor OFF
Serial.print("Sensor value: ");
Serial.println(value);
delay(100);
if (value <= 120)
{
sevseg.setNumber(1234,3);
sevseg.refreshDisplay();
sevseg.setBrightness(90);
digitalWrite(LEDROT_PIN, HIGH);
digitalWrite(LEDGRUEN_PIN, LOW);
digitalWrite(RELAY_PIN, HIGH); // turn on pump 1 seconds
//digitalWrite(POWER_PIN, HIGH); // turn the sensor ON
//delay(10); // wait 10 milliseconds
//value = analogRead(SIGNAL_PIN); // read the analog value from sensor
//digitalWrite(POWER_PIN, LOW); // turn the sensor OFF
delay(100);
}
else
{
sevseg.setNumber(1234,3);
sevseg.refreshDisplay();
sevseg.setBrightness(90);
digitalWrite(LEDROT_PIN, LOW);
digitalWrite(LEDGRUEN_PIN, HIGH);
digitalWrite(RELAY_PIN, LOW);
//digitalWrite(POWER_PIN, HIGH); // turn the sensor ON
//delay(10); // wait 10 milliseconds
//value = analogRead(SIGNAL_PIN); // read the analog value from sensor
//digitalWrite(POWER_PIN, LOW); // turn the sensor OFF
delay(100);
}
delay(100);
}
[EDIT] Bißchen aufgeräumt. Grüße Uwe [/EDIT]