Grüße euch,
ich hoffe ihr könnt mir helfen.
Folgendes Problem:
Ich habe einen Hühnerstall mit ungebetenen Gästen die mir immer die gelegten Eier wegfressen,
da hab ich mir gedacht es würde doch bestimmt funktionieren mit einer Metallbox, einer Wage, einem IR Sensor und einem Servo das so zu steuern das in dieser Box am Ende nur Eier landen.
Also alles gebaut und mit einem Nano verkabelt.
Dann noch paar Zeilen Code schreiben und fertig. (dachte ich)
Da das mein erstes Arduino Projekt ist bin ich mit dem denken ziemlich auf die Nase gefallen.
ich verstehe einfach nicht warum es nicht richtig funktioniert.
Der Arduino macht auch teils sehr seltsame Dinge (Zähler zählt nicht hoch, Servo fährt nicht in einem Stück...)
vlt könnt ihr mir helfen.
Danke
#include <Servo.h> //Servo Bibliothek
#include "HX711.h" //Wage Bibliothek
const int LOADCELL_DOUT_PIN = A2;//Pin DOUT Wage.
const int LOADCELL_SCK_PIN = A1; //Pin SCK Wage.
HX711 scale;
float reading=0; //Werte der Wage.
Servo MOTOR1; //Servo
int RUCK=2;//Eingang um Zähler EIER zurückzusetzen.
int IRANALOG=A0; // Eingang für IR Sensor.
int WAGEZ=0; //=1 Wenn Wert der Wage i.O.
int IRANALOGZ=0; //=1 Wenn Wert des IR Sensor i.O.
int SUMMEIRWAGE=0; //=2 Wenn Werte der Wage und des IR i.O.
int EIER=0;//Zähler wie viele Eier.
int LED2=8;//PIN für LED 2 EIER.
int LED4=9;//PIN für LED 4 EIER.
int LED6=10;//PIN für LED 6 EIER.
int LED8=11;//PIN für LED 8 EIER.
int LED10=12;//PIN für LED 10 EIER.
int LED12=13;//PIN für LED 12 EIER.
void setup() {
Serial.begin(9600);//Start der Seriellen Verbindung an PC.
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);//Start der Wage.
MOTOR1.attach(5); //PIN für Servo
pinMode(2,INPUT);// Eingang für Eier reset
pinMode(A0,INPUT);//Eingang für IR Sensor.
pinMode(8,OUTPUT);//LED
pinMode(9,OUTPUT);//LED
pinMode(10,OUTPUT);//LED
pinMode(11,OUTPUT);//LED
pinMode(12,OUTPUT);//LED
pinMode(13,OUTPUT);//LED
}
void loop() {
RUCK=digitalRead(2);
Serial.println(IRANALOG);
Serial.println(reading);
IRANALOG=analogRead(A0);
SUMMEIRWAGE=IRANALOGZ+WAGEZ;
if (scale.is_ready()) {
reading = scale.read(); //Lesen der Wage
}
if(reading <= -580000 && reading >= -550000) //erste Auswertung der Wage (Ratte auf der Wage?)
{WAGEZ=0;}
delay(1000); // Wartezeit bis Ratte von der Wage runter.
if(reading >= -580000 && reading <= -550000) //Ei auf der Wage
{WAGEZ=1;}
else { WAGEZ=0;}
if(IRANALOG<=100) //Ei vor dem IR Sensor.
{
IRANALOGZ=1;}
else{IRANALOGZ=0;}
if(SUMMEIRWAGE==2) //Werte der Wage und des IR i.O.
{
MOTOR1.write(50); //öffnen der Klappe
delay(3000); //Warten bis Ei in der Kiste
EIER=EIER+1; //Zähler EIER +1
}
else{MOTOR1.write(104);} //Klappe zu
if(RUCK==HIGH) //Zurücksetzen des EIER Zählers.
{EIER=0;}
if (EIER>=2) //Anzeige 2 Eier
{digitalWrite(LED2,HIGH);}
else{digitalWrite(LED2,LOW);}
if (EIER>=4) //Anzeige 4 Eier
{digitalWrite(LED4,HIGH);}
else{digitalWrite(LED4,LOW);}
if (EIER>=6) //Anzeige 6 Eier
{digitalWrite(LED6,HIGH);}
else{digitalWrite(LED6,LOW);}
if (EIER>=8) //Anzeige 8 Eier
{digitalWrite(LED8,HIGH);}
else{digitalWrite(LED8,LOW);}
if (EIER>=10) //Anzeige 10 Eier
{digitalWrite(LED10,HIGH);}
else{digitalWrite(LED10,LOW);}
if (EIER>=12) //Anzeige 12 Eier
{digitalWrite(LED12,HIGH);}
else{digitalWrite(LED12,LOW);}
}
EIER_final.ino (2.93 KB)