Zase kurník
Zase kurník
Zdravím vespolek,
nenašel by se někdo trpělivý, kdo by mi pomohl se sestavením ovládání automatických dvířek kurníku? Mám na stole arduino uno, 12V dc motorek, L298, fotoresistor, dva hallovy snímače jako koncáky, adaptér 12V a bateriový box 9V.
Pro jistotu popíšu, o co mi jde. Představa je jednoduchá, po východu slunce motor vytáhne dvířka k hornímu dorazu a nějakou dobu po setmění je spustí zase dolů..
Pro někoho znalého to asi bude brnkačka, ale pro mě, tímto oborem absolutně nepolíbeného, je to nadlidský úkol..
Díky za náměty David
Odesláno z mého Lenovo P2a42 pomocí Tapatalk
nenašel by se někdo trpělivý, kdo by mi pomohl se sestavením ovládání automatických dvířek kurníku? Mám na stole arduino uno, 12V dc motorek, L298, fotoresistor, dva hallovy snímače jako koncáky, adaptér 12V a bateriový box 9V.
Pro jistotu popíšu, o co mi jde. Představa je jednoduchá, po východu slunce motor vytáhne dvířka k hornímu dorazu a nějakou dobu po setmění je spustí zase dolů..
Pro někoho znalého to asi bude brnkačka, ale pro mě, tímto oborem absolutně nepolíbeného, je to nadlidský úkol..
Díky za náměty David
Odesláno z mého Lenovo P2a42 pomocí Tapatalk
Re: Zase kurník
to Pettr.. nejde odpovědět an SZ.. díky, tohle řešení mám taky v merku. zkouším to z toho co mám koupené, pokud to bude zlobit, udělám změnu. D
Re: Zase kurník
to Pettr : Tak jsem přeci jen doobjednal ty hodiny.. Dáme to tedy nějak dokupy?
Re: Zase kurník
..zkusim ještě jeden konkrétnější dotaz. Objevil jsem podobné řešení, jen bych potřeboval poradit, jak zapojit místo dveřních magnetů hall snímače a pomoct upravit kód.
Kdyby na to někdo někdo mrknul, budu mu velmi vděčný.. D
Kdyby na to někdo někdo mrknul, budu mu velmi vděčný.. D
Kód: Vybrat vše
// Chicken Coop Code 22/08/2017
// darkthreshold 20 This has nothing to do with controlling the darkness setting
//daythreshold = 400
// Define pins & variables
const int EnMotorPin = 9; // enable motor - pin 9 PWM
const int CloseDoorPin = 8; // direction close motor - pin 8
const int OpenDoorPin = 7; // direction open motor - pin 7
const int photocellPin = A0; // photocell connected to analog 0
int photocellVal; // analog reading of the photocel
bool daylight = true; // daylight status
int darkthreshold = 20;
int daythreshold = 400; // sets hysteresis limits to stop door jittering
int systemState = 0;
int SPEED = 220;
// Reed switches top and bottom of coop door
int bottomSwitchPin = 2;
int topSwitchPin = 4;
bool topSwitchState; // true if door is up
bool bottomSwitchState; // true if door is down
void setup() {
Serial.begin(9600);
pinMode(bottomSwitchPin, INPUT);
pinMode(topSwitchPin, INPUT);
pinMode(EnMotorPin, OUTPUT);
pinMode(CloseDoorPin, OUTPUT);
pinMode(OpenDoorPin, OUTPUT);
}
void loop() {
systemState = 0;
photocellVal = analogRead(photocellPin); // read inputs
if (photocellVal > daythreshold)
{
daylight = true;
}
if (photocellVal < darkthreshold)
{
daylight = false;
}
topSwitchState = digitalRead(topSwitchPin);
bottomSwitchState = digitalRead(bottomSwitchPin);
// read system status
if (daylight == true && topSwitchState == true)
{
systemState = 0; // motor stop
}
if (daylight == true && topSwitchState == false)
{
systemState = 1; // drive door up
}
if (daylight == false && bottomSwitchState == true)
{
systemState = 0; // motor stop
}
if (daylight == false && bottomSwitchState == false)
{
systemState = 2; // drive door down
}
DispVals();
switch (systemState) {
case 0: // motor stop
digitalWrite(CloseDoorPin, LOW);
digitalWrite(OpenDoorPin, LOW);
analogWrite(EnMotorPin, 0);
break;
case 1: //drive door up
digitalWrite(CloseDoorPin, LOW);
digitalWrite(OpenDoorPin, HIGH);
analogWrite(EnMotorPin, SPEED);
break;
case 2: // drive door down
digitalWrite(CloseDoorPin, HIGH);
digitalWrite(OpenDoorPin, LOW);
analogWrite(EnMotorPin, SPEED);
break;
default:
digitalWrite(CloseDoorPin, LOW);
digitalWrite(OpenDoorPin, LOW);
analogWrite(EnMotorPin, 0);
break;
}
}
void DispVals()
{
Serial.print("topSW ");
Serial.print(topSwitchState);
Serial.print("\t");
Serial.print("botSW ");
Serial.print(bottomSwitchState);
Serial.print("\t");
Serial.print("PhotoVal ");
Serial.print(photocellVal);
Serial.print("\t");
Serial.print("daylight ");
Serial.print(daylight);
Serial.print("\t");
Serial.print("systemState ");
Serial.print(systemState);
Serial.print("\t");
if (systemState == 0)
{
Serial.println("\t door stopped");
}
if (systemState == 1)
{
Serial.println("\t door driving up");
}
if (systemState == 2)
{
Serial.println("\t door driving down");
}
}
Re: Zase kurník
Ty sensory na dveře mají magnet + hall snímač, a dle toho se vyhodnotí, jestli jsou dveře otevřené nebo zavřené.
Re: Zase kurník
Vedou z nich dva drátky, hall senzor má tři fousu, takze nevim, kam s nimi..
Odesláno z mého Lenovo P2a42 pomocí Tapatalk
Odesláno z mého Lenovo P2a42 pomocí Tapatalk
Re: Zase kurník
jeden je napájení, jeden zem a jeden výstup ... který je který se dá dohledat podle typu toho senzoru
Re: Zase kurník
To není problém dohledat, ale co s tím dál, je nad mé schopnosti
Odesláno z mého Lenovo P2a42 pomocí Tapatalk
Odesláno z mého Lenovo P2a42 pomocí Tapatalk
Re: Zase kurník
Tak jsem to po bohaté diskusi rozchodil..
Odesláno z mého Lenovo P2a42 pomocí Tapatalk
Odesláno z mého Lenovo P2a42 pomocí Tapatalk
Re: Zase kurník
Vsadím se že jak si dohledal co je co, tak tě trklo jak na to dál ... a nebo alespoň co hledat dál. ..... no a nemá pak člověk větší radost ?
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti