PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Endwicklung Stallsteuerung oder - Hühnerstall Stufe 2



dussel
18.03.2014, 11:46
:)
Wie im Titel schon geschrieben - es geht weiter!
Der Brutautomat läuft, die selbstgebasteltet Wärmeplatte macht auch das was sie soll - wärmen - also muß ein neues Projekt her.
Vieleicht gleich zu Anfang: Die diversen Klappenöffner, welche der Handel bietet sind ausgereift und sicher nicht überteuert, somit genau das Richtige für die Meisten!
Dies Projekt richtet sich also nicht an die Spar-, sondern an die Bastelfüchse, wie mich.

Was soll (wenn Alles klappt) die Steuerung am Ende können?
- die Hühnerklappe öffen und schließen
- die Beleuchtung des Stalls steuern
- im Winter eine kleine Elektro - Zusatzheizung schalten
- die Lüftung nach Temperatur und Feuchte regeln

Also dann los - - -

Erst mal die Ideensammelung

Ein Arduino als Grundstock ist genial, weil
- günstig
- fertig aufgebaut
- ohne teuere Hardware mit dem PC zu programmieren
- durch diverse vorhandene Shields (Zusatzplatinen) gut aufrüstbar
- keine Ahnung was noch???

Um schnell zu kleinen Erfolgen zu kommen stelle ich mir das System modular vor.
Separate Steuerung durch RTC (sowas ähnliches wie eine Zeitschaltuhr), LCD Display - - zu erweitern. Motoreinheit für die Klappe - LDR für die Sonnensteuerung - Temperatur und Feuchtesensor - Lichtsteuerteil.

Da ich nicht der Programmierprofi bin, würde ich mich über Unterstützung freuen!
Meine Programmiersprache ist Bascom - ich weiß - Anfänger - :roll
reicht aber um die meisten Probleme in den Griff zu bekommen.
Um selber mit zu basteln, ist für Euch KEIN programmieren nötig, lediglich das Übertragen des fertigen Programms auf den Kontroller - so stell ich mir das jedenfalls vor. Sicher gibt es natürlich auch die Möglichkeit, das Andere das Übertragen des Programms (gegen Unkosten) übernehmen!

Das Meiste soll (auch) mit Kaufteilen zu realisieren sein, wird sicher nicht bei Allen Dingen klappen aber halt der größte Teil.

So, erst mal die Sammelung schließen - die Arbeit ruft.

Vieleicht noch kurz in den Raum (oder auch in den Stall) werf - - -
Anfangen werde ich mit der Klappensteuerung - Teile der Hardware sind schon vorhanden.
Links zu möglichen Anbietern, Softwardownloads usw. folgen, wenn das jeweilige Thema behandelt wird - würde ich mir von Euch auch wünschen, sofern Ihr mitmischen wollt.
Hier als erstes der Link zu dem vom mir gewähltem Grundbaustein, dem Arduino Uno (http://arduino.cc/en/Main/ArduinoBoardUno)
und
dem Arduino Nano (http://arduino.cc/en/Main/ArduinoBoardNano#.UygiUc407Fw)
Beide Modelle haben den gleichen Kontroller Onboard, so das ein und das selbe Programm auf beiden Boards läuft.

dussel
19.03.2014, 19:50
Habe gestern mal die ersten Versuche mit einem 12V Getriebemotor gemacht. Stromaufnahme so um 40mA.
Mit meiner Probeklappe kann ich die Spannung bis 4V verringern ohne das es hapert - so weit so gut.
Hier mal ein Bild von meinem heutigen Wirken - jetzt warte ich auf dünne Schnur zum testen.
118370

GGK
19.03.2014, 20:48
Moin

Also die Idee mit dem Arduino ist gar net so verkehrt.
Ich selber habe zwar keen Plan von Programmiersprachen,aber wenn das Ding am PC zu programmieren ist kann es ja nich allzu schwer sein ;)
Ich selber habe mir einen Türöffner mit Relais gebastelt,wo nur eine Umpolung für hoch/runter stattfindet mit 2 Endtastern und einem Fensterhebermotor.Parallel dazu hab ich noch ne Solarzelle angeschlossen.Trotzdem ist irgendwann die Batterie leer:(
http://www.huehner-info.de/forum/attachment.php?attachmentid=97198&d=1365603926
Hier als Video (http://www.youtube.com/watch?feature=player_embedded&v=BWaHEPKt2MQ) zu sehen
Sehr billig und einfach.Trotzdem suche ich noch nach einer besseren Lösung und auch stromsparender.
Nu gibt ja inne Bucht solche Getriebemotoren (http://www.ebay.de/itm/Getriebe-Motor-elektrisch-12V-30-U-min-f-Modellbau-Neu-/260683988489?pt=Motoren_Getriebe&hash=item3cb1f9fe09).
Kann man mit dem Arduino den Motor so ansteuern das der nach einer gewissen Zeit abschaltet und denn auch umpolt und dann wieder abschaltet?
Könntest Du sowas programmieren?Denn kann ich zusätzlich noch ne LED Beleuchtung steuern.
Ansonsten verfolge ich erstmal Dein Bauprojekt wie sich das entwickelt^^

dussel
19.03.2014, 23:31
Das Programmieren der Standartfunktionen sollte ich wohl hin bekommen. Die von Dir angesprochenen Getriebemotoren sind perfekt - Ebaysuche "Getriebemotor 6V" oder "Getriebemotor 12V" bringen einem schon einige passende Artikel.
Wichtig - die Drehzahl sollte nicht zu hoch sein, da mit steigender Drehzahl das Drehmoment (die Hubkraft) abnimmt!
So um 20 Upm sind sicher angemessen.
Momentan bin ich am grübeln wie ich den Motor ansteuere. Die von Dir gewählte Relaislösung ist sicher nicht die Schlechteste! Würde eigentlich lieber ein Motortreiber verwenden aber finde einfach nichts passendes, fertig aufgebautes - schnüff. Hatte eigentlich gedacht das das Arduino Motor Shield (http://www.ebay.de/itm/L293D-Modul-Motor-Antriebs-Schild-Expansion-Board-fur-Arduino-Mega-UNO-Duemilano-/121246978403?pt=Wissenschaftliche_Ger%C3%A4te&hash=item1c3ae21163) perfekt geeigent sei - aber die benötigten Pins decken sich nicht mit dem (von mir ) angedachtem LCD Shield (http://www.ebay.de/itm/1602-LCD-Keypad-Shield-fur-Arduino-UNO-Mega-2560-1280-/310701791886?pt=Wissenschaftliche_Ger%C3%A4te&hash=item4857451a8e).
wenn Relais, dann könnte man dieses Board (http://www.ebay.de/itm/4-Kanal-Channel-Relais-Relay-5V-230V-Optokoppler-Arduino-Raspberry-CP0404A-F22-/281246010414) nutzen. Für den Hubmotor würden dann drei Relais benötigt, eins wäre noch frei für Anderes.
HIER (http://www.rn-wissen.de/index.php/Getriebemotoren_Ansteuerung#Ansteuerung_mit_Relais ) hat es DIE Seite wenn es um das Ansteuern von Getriebemotoren geht.

Und hier ein Bild, wie die Relaissteuerung aufgebaut werden könnte - statt dem Schalter S1 muß man sich dann natürlich den Kontroller vorstellen - S2 wird durch das dritte Relais ersetzt das wiederum vom Kontroller gesteuert wird.
118376
(ist gemopst von Halvar - "Kleiner Bascom AVR Kurs (http://halvar.at/elektronik/kleiner_bascom_avr_kurs/)")

Schweife mal kurz ab - - schweiiiif - -
Bin auch noch am suchen nach einer machbaren Schnurhaspelversion! Meine habe ich mal eben gedreht, hat natürlich nicht Jeder eine Drehmaschine im Hühnerstall - oder?
Wer hat die Idee???

GGK
20.03.2014, 19:46
Was issn ne Schnurhaspelversion???? :unsicher
Also ich hab auch ma bissle im I-net geguckt und habe da folgendes (http://itp.nyu.edu/physcomp/Labs/DCMotorControl) gefunden.
Ansonsten müsste das doch mit so einem Arduino Motor Shield eigendlich funzen guck hier (http://www.komputer.de/wordpress/archives/27)
Diese Arduinos bekommt man ja unheimlich günstig,und das wäre echt ne billige und verschleissfreie Alternative zum Axt Türöffner.Wenn ich ma bissle Zeit habe,denn werde ich mir ma die Teile bestellen und bissle rumexperimentieren.
So ne Haspel kannst Du mir denn ja aus Alu drehen ;)
Und son Ding zu programmieren kann auch nicht allzu schwer sein,geht ja alles über USB am PC.
Und der kleine Motor und die Platine passt ja locker in so eine Feuchtraumdose.
Hat der Arduino eigendlich eine interne Zeituhr?Damit man die Tür zeitlich steuern kann?
Ich habe für meinen Türöffner diese 12V Schaltzeituhr (http://www.ebay.de/itm/Neu-Digital-LCD-Zeitschaltuhr-AC-12V-16A-programmierbar-Timer-Schalter-Zeit-T5-/331063787031?pt=LH_DefaultDomain_77&hash=item4d14f07e17)....ist echt klasse das Ding und billig...Versand hat zwar 4 Wochen gedauert aber egal^^ :cool:

GGK
20.03.2014, 20:10
Irgendwie hab ich den falschen Link reinbekommen von dem Arduino Shield.
Hier (http://arduino.cc/de/Main/ArduinoMotorShieldR3#.Uys7Gc7lApw) is der andere Link vom Shield.Anhand der Beschreibung müsste das eigendlich funktionieren.
Gibts sogar Videos (https://www.youtube.com/watch?v=IkMTRtqjVzI) auf Youtube von ;D

dussel
21.03.2014, 03:23
Statt Zeitschaltuhr denke ich an ein RTC (Real Time Clock) Modul, habe damit schon viel und erfolgreich experimentiert.
zB. DS1307 (http://www.ebay.de/itm/I2C-RTC-DS1307-AT24C32-Real-Time-Clock-Modul-CP12003-A43-/281255145023?pt=Wissenschaftliche_Ger%C3%A4te&hash=item417c1cee3f)
Meine schlaffe Denke rückt immer mehr vom LCD Shield ab - dafür werden einfach zuviele (anderweitig benötigte) Pins verbraucht.
Dann doch vieleicht eher eine TWI (I2C) Lösung. TWI brauche ich eh für die RTC

dussel
24.03.2014, 03:12
Sodelle -
wieder ein kleines Stückchen weiter.
Hatte heute Abend mal wieder ein bischen Zeit zum basteln.
Habe den Getriebmotor (Zwei) an meine Basteltestklappe gebaut, dann eine meiner Testboards rausgekramt und mit einem L293 Modul verkabelt - Endschalter angebaut und ein einfaches Programm geschrieben.
Momentan kann es nicht viel mehr als auf Knopfdruck eine Klappe zu öffnen oder zu schließen - aber immerhin, das klappt!
Morgen werde ich dann mal einen LDR (Lichtsensor) andocken und schauen was sich damit anstellen läßt.
Bilder folgen in den nächsten Tagen.

Hier mal das Programm:



'Stallsteuerung die Erste

'Getriebemotor an L293 Modul
'Endschalter als Reedkontackte ausgeführt


$regfile = "m32def.dat"
$crystal = 12000000


Dim A As Byte

'Taster an PB1
Taster Alias Pinb.1
Config Taster = Input
Portb.1 = 1 'PullUp-Widerstand einschalten
'Endschalter Unten an PC2
Endschalter_u Alias Pinc.2
Config Endschalter_u = Input
Portc.2 = 1 'PullUp-Widerstand einschalten
'Endschalter Oben an PC1
Endschalter_o Alias Pinc.1
Config Endschalter_u = Input
Portc.1 = 1 'PullUp-Widerstand einschalten

'Hintergrundbeleuchtung LCD an PD4
Hintergrundbeleuchtung Alias Portd.4
Config Portd.4 = Output

'Motor_ein an PC3
Motor_ein Alias Portc.3
Config Portc.3 = Output
'Motor Richtung an PC4 / low ist hoch - high ist runter
Motor_richtung Alias Portc.4
Config Portc.4 = Output

Led Alias Portb.0
Config Portb.0 = Output

'ADC Konfigurieren - wird später gebraucht um ein Lichtsensor auszuwerten
Config Adc = Single , Prescaler = Auto , Reference = Internal
Start Adc

'LCD Konfigurieren und Zeichen definieren
Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.5 , Rs = Portd.7
Config Lcd = 16x2
'selber entworfene Zeichen für später
Deflcdchar 1 , 31 , 17 , 17 , 17 , 17 , 17 , 17 , 17
Deflcdchar 2 , 31 , 31 , 17 , 17 , 17 , 17 , 17 , 17
Deflcdchar 3 , 31 , 31 , 31 , 17 , 17 , 17 , 17 , 17
Deflcdchar 4 , 31 , 31 , 31 , 31 , 17 , 17 , 17 , 17
Deflcdchar 5 , 31 , 31 , 31 , 31 , 31 , 17 , 17 , 17
Deflcdchar 6 , 31 , 31 , 31 , 31 , 31 , 31 , 17 , 17
Deflcdchar 7 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 17
'Lcd Chr(255)
Cls
Cursor Off
Hintergrundbeleuchtung = 1


Lcd "Stallsteuerung"
Locate 2 , 1
Lcd "Vers. 0.1"


Do

Einsprung1:
Waitms 500
'Hier muß man umdenken, durch die im Kontroller aktivierten Pullup Widerstände, ist ein nicht 1 sondern 0
'gleiches gilt auch für die Endschalter
If Taster = 0 Then Goto Klappe_fahren
'
Led = 1
A = A + 1
If A >= 2 Then Led = 0
If A >= 10 Then
A = 0
End If

Loop

Klappe_fahren:
If Endschalter_u = 0 Then
Motor_richtung = 0
Goto Hoch
End If
If Endschalter_o = 0 Then
Motor_richtung = 1
Goto Runter
End If
Goto Fahren

Einsprung2:
Toggle Motor_richtung
Led = 0
Motor_ein = 0
Goto Einsprung1

Hoch:
Led = 1
Motor_ein = 1
Waitms 500
If Taster = 0 Then Goto Einsprung2
If Endschalter_o = 0 Then Goto Einsprung2
Goto Hoch

Runter:
Led = 1
Motor_ein = 1
Waitms 500
If Taster = 0 Then Goto Einsprung2
If Endschalter_u = 0 Then Goto Nachlauf1
Goto Runter

Fahren:
Led = 1
Motor_ein = 1
Waitms 500
If Taster = 0 Then Goto Einsprung2
If Endschalter_u = 0 Then Goto Nachlauf1
If Endschalter_o = 0 Then Goto Einsprung2
Goto Fahren

'der Nachlauf dient zum genauen justieren des Schließens (falls der Reedkontackt nicht so ganz perfekt sitzt)
Nachlauf1:
Waitms 2500
Goto Einsprung2

End


Was macht das Programm genau:
Als erstes wartet es auf einen Tastendruck - eine LED blinkt solange nichts gedrückt ist.
Wird der Taster gedrückt, werden die Endschalter abgefragt, danach die Dreh-Richtung des Motors bestimmt und dann wird der Motor angeschaltet.
Läuft der Motor leuchtet die LED dauerend.
Während der Motor läuft werden ständig die Endschalter und der Taster abgefragt.
Ist ein Endschalter erreicht schaltet der Motor ab.
Wird während des Fahrens der Taster gedrückt, stoppt der Motor und die Richtung wird verändert. Drückt man den Taster erneut, läuft der Motor anders herum wieder an.
Immer wieder bis ein Endschalter erreicht wird oder der Taster gedrückt wird.
Eine Besonderheit hat es noch, den Nachlauf.
Hier kann man den Motor bei erreichen des Endschalters noch kurze Zeit weiter laufen lassen, um Ungenauigkeiten bei der Montage der Endschalter zu kompensieren.

Die Pinbelegung, der Kontroller und der Tackt stimmen noch nicht mit der späteren Arduino Hardware überein

dussel
24.03.2014, 03:38
Mist, war zu langsam mit dem Ändern -
Momentan braucht man nur 6 Pins (7 mit LDR).
1) Taster
2) LED
3) Motor ein
4) Motor Richtung
5) Endschalter Oben
6) Endschalter Unten

Morgen dann -
7) LDR (Lichtsensor)

Somit könnte man einen reine Klappensteuerung schon mit einem zB. Attiny26 realisieren!
Es wären dann immer noch reichlich Pins über, für diverses Anderes wie LCD, Stromsensor (Motor), Spannungsüberwachung Batterie usw..

GGK
24.03.2014, 09:04
Kann man nicht auf Endschalter verzichten und stattdessen dem Motor eine Einschaltzeit vorgeben? Geht denn auch ein Reedkontakt als Endschalter?Die gibts ja nur als Schliesser.Und was passiert wenn ein Huhn unter der Klappe steht? Aber Du machst das scho.... ;)

Gesendet von meinem Wildfire S A510e mit Tapatalk

dussel
24.03.2014, 09:53
Kann man nicht auf Endschalter verzichten und stattdessen dem Motor eine Einschaltzeit vorgeben?
Hatte ich auch schon überlegt, aber was ist wenn: Der Motor vieleicht einen Tropfen Öl nötig hätte, die Batterien zusätzlich nicht mehr voll sind und es vieleicht Winter ist?
Dann dürfte sich die Klappe sicher nicht mehr vollständig öffnen. Der arme Hahn!!
Meine allererste Idee war: Statt Endschalter nur den Motorstrom überwachen.
Sollte für die Aufwärtsbewegung auf jeden Fall gehen.
Klappe ist am Anschlag - der Motorstrom geht linear mit der Erhöhung des Drehmomentes nach oben - passt, da ein großer Unterschied zum "Normalbetrieb" vorhanden ist.
Aber in der Abwärtsbewegung ist der Unterschied nicht so gravierend anders wenn der Schieber den Boden berührt.
Hier verhält es sich wie folgt:
In der normalen Abwärtsbewegung ist der Motorstrom etwas kleiner als beim hochfahren, da das Gewicht des Schiebers mit nach unten zieht. Sobald der Schieber den Boden berührt (oder auch ein Huhn) erhöht sich der Strom minimal da das Gewicht des Schiebers nicht mehr den Motor endlastet. Der Unterschied ist nur gering.
Geht vieleicht trotzdem? Ist aber nicht soo sicher.
Fazit: Auf den oberen Endschalter könnte man verzichten da man über eine Überwachung des Motorstroms eigentlich nicht drum herrum kommt (sollte mal was hapern). Allerdings kosten diese Reedschalter (Suchbegriff "Reedkontakt, Fensterkontakt, Alarmkontakt usw.") ja nicht die Welt und Pins sind genügend vorhanden.

GGK
24.03.2014, 17:49
Was haste denn jetzt an Hardware benutzt?
Nur den Arduino und das L293 Modul?
Denn müsste man ja mit 50€ locker hinkommen für die komplette Steuerung?
Arduino + L293 gibt ja wohl günstig bei Ihhhbäääh oder?

GGK
24.03.2014, 20:00
Hab diese zb. gefunden
Arduino (http://www.ebay.de/itm/2012-Version-Arduino-UNO-R3-MEGA328P-ATMEGA16U2-Board-Kompatibel-Mini-USB-Kabel-/121297624501?pt=Wissenschaftliche_Ger%C3%A4te&hash=item1c3de6ddb5)
Uhr Modul (http://www.ebay.de/itm/DS3231-AT24C32-Chip-hohe-Prazision-Uhr-Modul-IIC-Real-Time-Memory-Clock-Modul-/111253281211?pt=Bauteile&hash=item19e73659bb) wenn mans braucht
L293 Motormodul (http://www.ebay.de/itm/L293D-Modul-Motor-Antriebs-Schild-Expansion-Board-fur-Arduino-Mega-UNO-Duemilano-/121246978403?pt=Wissenschaftliche_Ger%C3%A4te&hash=item1c3ae21163)

dussel
25.03.2014, 04:05
Noch ist meine Hardware eine Eigenkonstruktion - sollte sich aber Alles einfach an Arduino Hardware anpassen lassen.
Der von Dir vorgeschlagene Arduino ist OK - als Uhrenmodul würde ich das weiter oben vorgeschlagene DS1307 Modul nehmen. Ich weiß nicht ob das DS3231 Modul ein ähnliches Protokoll nutzt.
Das Motor Shield ist OK - aber hier wäre die Ansteuerung einfacher mit zB diesem Modul (http://www.ebay.de/itm/NEW-L293D-Motor-Drive-Shield-Expansion-Board-for-Arduino-Mega-UNO-R3-MEGA2560-R3-/111203265486),
oder auch DAS (http://www.ebay.de/itm/XD-04-L298N-Dual-H-Brucke-DC-Stepper-Motor-Treiber-Driver-MO03001-G41-/271388727252?pt=LH_DefaultDomain_77&hash=item3f300757d4) ist geeignet. Bei dem von Dir vorgeschlagenem Modul werden, um Pins zu sparen, sämmtliche Eingänge (ausser den PWM-Eingängen) über ein Schieberegister angesteuert - ist nicht schlimm aber halt etwas aufwendiger.

Hatte Heute keine Lust auf Hardware und habe deshalb ein bischen mit der Software rumgespielt.
Hinzugekommen ist das LCD Modul mit Text und Symbol Ausgabe.
Hier ist das Ergebniss zu sehen - Habe keine Ahnung wer da im Hintergrund rumschnauft?

https://www.youtube.com/watch?v=pJPFDLnOi9k&feature=youtu.be
Und noch ein paar Bilder
118745
118746
118747
Sieht viel komplizierter aus als es ist!
Ist bedingt durch die universelle Hardware - -


'Stallsteuerung die Erste

'Getriebemotor an L293 Modul
'Endschalter als Reedkontackte ausgeführt
'LCD 1602

$regfile = "m32def.dat"
$crystal = 12000000


Dim A As Byte
Dim B As Byte

'Taster an PB1
Taster Alias Pinb.1
Config Taster = Input
Portb.1 = 1 'PullUp-Widerstand einschalten
'Endschalter Unten an PC2
Endschalter_u Alias Pinc.2
Config Endschalter_u = Input
Portc.2 = 1 'PullUp-Widerstand einschalten
'Endschalter Oben an PC1
Endschalter_o Alias Pinc.1
Config Endschalter_u = Input
Portc.1 = 1 'PullUp-Widerstand einschalten
'Hintergrundbeleuchtung an PD4
Hintergrundbeleuchtung Alias Portd.4
Config Portd.4 = Output
'Motor an PC3
Motor_ein Alias Portc.3
Config Portc.3 = Output
'Motor Richtung an PC4 / low ist hoch - high ist runter
Motor_richtung Alias Portc.4
Config Portc.4 = Output

Led Alias Portb.0
Config Portb.0 = Output

Config Adc = Single , Prescaler = Auto , Reference = Internal
Start Adc

Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.5 , Rs = Portd.7
Config Lcd = 16x2
Deflcdchar 1 , 31 , 17 , 17 , 17 , 17 , 17 , 17 , 17
Deflcdchar 2 , 31 , 31 , 17 , 17 , 17 , 17 , 17 , 17
Deflcdchar 3 , 31 , 31 , 31 , 17 , 17 , 17 , 17 , 17
Deflcdchar 4 , 31 , 31 , 31 , 31 , 17 , 17 , 17 , 17
Deflcdchar 5 , 31 , 31 , 31 , 31 , 31 , 17 , 17 , 17
Deflcdchar 6 , 31 , 31 , 31 , 31 , 31 , 31 , 17 , 17
Deflcdchar 7 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 17
'Lcd Chr(255)
Cls
Cursor Off
Hintergrundbeleuchtung = 1


Lcd "Stallsteuerung"
Locate 2 , 1
Lcd "Vers. 0.1"
Wait 4
Cls

Do
Einsprung1:
Waitms 500
If Taster = 0 Then Goto Klappe_fahren
Led = 1
A = A + 1
If A >= 2 Then Led = 0
If A >= 10 Then
A = 0
End If
If Endschalter_u = 0 Then
Locate 1 , 1
Lcd "Klappe"
Locate 2 , 1
Lcd "geschlossen"
Locate 2 , 15
Lcd Chr(255)
End If
If Endschalter_o = 0 Then
Locate 1 , 1
Lcd "Klappe"
Locate 2 , 1
Lcd "offen "
Locate 2 , 15
Lcd Chr(1)
End If
Loop

Klappe_fahren:
If Endschalter_u = 0 Then
Motor_richtung = 0
Goto Hoch
End If
If Endschalter_o = 0 Then
Motor_richtung = 1
Goto Runter
End If
Goto Fahren

Einsprung2:
Toggle Motor_richtung
Led = 0
Motor_ein = 0
Goto Einsprung1

Hoch:
Locate 2 , 1
Lcd Chr(239)
Lcd "ffnet "
Led = 1
Motor_ein = 1
Waitms 500
If Taster = 0 Then Goto Einsprung2
If Endschalter_o = 0 Then Goto Einsprung2
Select Case B
Case 2 : Gosub Klappe1
Case 3 : Gosub Klappe2
Case 4 : Gosub Klappe3
Case 5 : Gosub Klappe4
Case 6 : Gosub Klappe5
Case 7 : Gosub Klappe6
Case 8 : Gosub Klappe7
Case 9 : Gosub Klappe8
End Select
If B < 2 Then B = 10
B = B - 1
Goto Hoch

Runter:
Locate 2 , 1
Lcd "schlie"
Lcd Chr(226)
Lcd "t "
Led = 1
Motor_ein = 1
Waitms 500
If Taster = 0 Then Goto Einsprung2
If Endschalter_u = 0 Then Goto Nachlauf1

Select Case B
Case 1 : Gosub Klappe1
Case 2 : Gosub Klappe2
Case 3 : Gosub Klappe3
Case 4 : Gosub Klappe4
Case 5 : Gosub Klappe5
Case 6 : Gosub Klappe6
Case 7 : Gosub Klappe7
Case 8 : Gosub Klappe8
End Select
B = B + 1
If B > 8 Then B = 1

Goto Runter

Fahren:
If Motor_richtung = 1 Then
Goto Runter
Else
Goto Hoch
End If

Nachlauf1:
Waitms 2500
Goto Einsprung2

Klappe1:
Locate 2 , 15
Lcd Chr(1)
Return
Klappe2:
Locate 2 , 15
Lcd Chr(2)
Return
Klappe3:
Locate 2 , 15
Lcd Chr(3)
Return
Klappe4:
Locate 2 , 15
Lcd Chr(4)
Return
Klappe5:
Locate 2 , 15
Lcd Chr(5)
Return
Klappe6:
Locate 2 , 15
Lcd Chr(6)
Return
Klappe7:
Locate 2 , 15
Lcd Chr(7)
Return
Klappe8:
Locate 2 , 15
Lcd Chr(255)
Return

End

Hühnerfuchs
25.03.2014, 14:30
Wenn deine Klappe in der Realität auch solche Geräusche macht brauchst du kein Display das dir anzeigt dass sie gerade schließt,das hören sogar die Nachbarn:laugh,und deine Hühner werden jedes mal wenn die Klappe öffnet oder schließt die Panik bekommen - der Vorteil ist dabei falls der Fuchs in der Nähe der Klappe ist wird er durch den Lärm in den Wald flüchten.
Was du da baust ist ja eine nette Spielerei,aber ob sich der Aufwand in der Praxis lohnt möchte ich hier einmal
bezweifeln,da gibt es Lösungen mit weniger Bauteilen und einfacherer Programmierung.

dussel
25.03.2014, 15:04
:)
hast Du Alles gelesen?
Augenscheinlich nicht!
Einer der ersten meiner Sätze: "Vieleicht gleich zu Anfang: Die diversen Klappenöffner, welche der Handel bietet sind ausgereift und sicher nicht überteuert, somit genau das Richtige für die Meisten!
Dies Projekt richtet sich also nicht an die Spar-, sondern an die Bastelfüchse, wie mich."

ICH kann das Teilprojekt "Klappenöffner" mit einem Getriebemotor, einem Attiny13, einem L293 und ganz wenig (billiges) Hühnerfutter realisieren.
Ja, tatsächlich "Hühnerfutter" - so nennt der Elektroniker Widerstände, Kondensatoren - halt Alles was so an Kleinkram auf einer Platine ist.
DIE BRÜCKE ZUM HÜHNERHALTER IST GESCHLAGEN!
Um aber auf den Anfang des letzten Satzes zurück zu kommen - Ich -
aber mein Anliegen ist es einen Nachbau ohne großes löten zu ermöglichen. Ob das am Ende klappt oder finanziell einen Sinn gibt - keine Ahnung??
Wo ich Dir uneingeschränkt recht gebe: Mein Programmierstiel ist schrott! Allerdings bekomme ich trotzdem meine Projekte zu laufen ;D

GGK
25.03.2014, 15:51
Supi....schaut ja schon vielversprechend aus.
Gefällt mir sehr gut das Ganze:)
Für den Arduino gibts ja auch solche Funk-Module,vielleicht kann man die Klappe auch mit Funk öffnen^^
Nur der Motor dreht für meinen Geschmack bissle zu langsam :roll liegt wahrscheinlich daran weil meiner rubbeldiekatz unten ist :laugh guckst du hier (http://www.youtube.com/watch?feature=player_embedded&v=BWaHEPKt2MQ)

Hühnerfuchs
25.03.2014, 17:12
:)
[QUOTE]hast Du Alles gelesen?


Sorry,ich hab zwar alles gelesen,aber scheinbar etwas überlesen:-X,in diesem Fall
nehme ich alles zurück und behaupte das Gegenteil:laugh.
Übrigens habe ich nicht deine Programmierarbeit kritisiert sondern den Aufwand.
Ich werde den Thread selbstverständlich weiter verfolgen und am Ende hoffe ich auf eine
"ehrliche" Kostenaufstellung deinerseits ( natürlich ohne Arbeitszeit - nur Material).
Auf die Gefahr hin dass ich noch etwas überlesen habe (ich hab jetzt momentan nicht die Zeit nochmals alles durchzulesen) trotzdem noch eine Frage,ist diese Schaltung auch irgendwie
Netzwerkfähig?

Jedenfalls viel Spass noch:)

dussel
26.03.2014, 13:19
Danke! Werde ich haben - ich liebe basteln.
Zu den Kosten vorab: Meine selbstentwickelten Projekte waren immer um einiges teurer als fertig Gekauftes.
Kleines Beispiel: Brauche mal schnell ein ein bestimmten Transistor den ich nicht im Lager habe - renn los zur Elektronikapotheke - macht 8,99Euro - :o Danke! Bei Reichelt hätte ich 0,99 bezahlt, plus Versand macht 7,-. Das fertige Projekt hätte mich vieleicht im I-net 10,- gekostet, beim Chinesen für 2,99 zu bekommen.
Was tut man nicht Alles um nach Tagen, Wochen, Monaten was Selbstgebasteltes (manchmal auch Unfertiges) im Regal stehen zu haben :).
Anders verhält es sich bei Nachbauten aus dem I-net - hier kann man manchmal schon ein wenig Geld sparen, da die benötigten Teile ja vor gegeben sind und nichts selber entwickelt werden muß - Zeit darf man allerdings nicht rechnen.

@GGK
Das ist die Turboklappe schlechthin! Selbst Rosi-Rennhuhn bekommt den Luftzug der abwärtsrasenden Klappe zu spüren!

Gestern Nacht ging es wieder einen Schritt vorwärts -
Der Lichtsensor ist fertig, funktioniert und ist für gut befunden.
Allerdings passt jetzt das Programm vorn und hinten nicht mehr! Werde es komplett neu schreiben müssen.
Ich denke das jetzt schon eine Art Menue angesagt ist, um später auch auf die Anderen Funktionen zugreifen zu können.
Momentan denke ich das es Sechs Tasten werden (5 + Reset sind auf dem LCD Shield schon vorhanden). 5 werden über einen ADC Pin abgefragt - der Sechste soll an einen Interupt Pin um den Kontroller aus dem Schlaf zu wecken.
Um Strom zu sparen wird der Kontroller in den Schlaf geschickt - aufwachen wird er dann alle 4-8 Sekunden um mal kurz (ein paar Millisekunden) zu schauen was so geht (Lichtsensor und RTC abfragen). Zusätzlich kann ich dann, durch drücken des Tasters am Interuptpin den Kontroller wecken und zur Arbeit bewegen.
So der erste Plan für das neue Programm -

Noch mal kurz zurück zum Lichtsensor -
Hier ist nach LDR und Arduino zu suchen, evt. auch mal bei den Bildern schauen.
Der komplette Sensor besteht eigentlich nur aus einem Spannungsteiler, gebildet aus dem LDR (lichtempfindlicher Widerstand) und einem Festwiderstand. Der Wert des Festwiderstandes ist erst mal ziemlich unkritisch - zum ersten testen macht man mit 10KOhm nichts verkehrt. Die Beiden Widerstände sind hintereinander angeordnet wie folgt: Gnd (Minus) - 10K Widerstand - Abgang zum ADC am Kontroller - LDR - +5V.
Das Konstruckt dann in ein Marmeladenglas (egal was, Hauptsache ist gegen Wasser geschützt) und per Kabel an den Mikrokontroller - fertich.
Durch den sich, bei unterschiedlichem Lichteinfall veränderndem Widerstandes des LDR, liegen dann unterschiedliche Spannungen zwischen 0 und 5 Volt am ADC an.

dussel
29.03.2014, 05:19
Langsam, gaaaaanz langsam nimmt das Programm Gestallt an. Hätte nicht gedacht das da soviel Zeit für ins Land geht.

RTC läuft -
Temperatursensor auch -
Menuesteuerung wird langsam -
Powerdown klappt -

Jetzt muß die Motoransteuerung, der LDR und der Watchdogtimer noch bearbeitet werden.

Wer Lust hat mal ein Blick ins Programm zu werfen?

:laugh:laugh
Das komplette Programm ist leider etwas zu lang - - -


[CODE]'Uhr mit RTC DS1307 und Temperaturfühler DS18B20
'Stellentaster PortB.1
'1Wiresensor an PortA.7

$regfile = "m32def.dat"
$crystal = 12000000 '12MHz Quarz
$hwstack = 40
$swstack = 32
$framesize = 60

Config Lcdpin = Pin , Db4 = PortB.3 , Db5 = PortB.2 , Db6 = PortB.1 , Db7 = PortB.0 , E = PortB.5 , Rs = PortB.7
Config Lcd = 16 * 2
Cls
Cursor Off

Deflcdchar 0 , 32 , 4 , 14 , 14 , 14 , 31 , 4 , 32
Deflcdchar 1 , 32 , 4 , 14 , 10 , 10 , 31 , 4 , 32
Cls

Config PortB.4 = Output
Hintergrundbeleuchtung Alias PortB.4

Config PortC.7 = Output
Kanal1 Alias PortC.7
Kanal1 = 0

Config PortC.6 = Input
Portc.6 = 1
Stellen_taste Alias Pinc.6

'TASTER1 an PD2
Taster1 Alias Pind.2
Config Taster1 = Input
Taster1 = 1 'PullUp-Widerstand einschalten

'Wenn der Interrupt INT0 auftritt, dann springe zum Label On_int0
On Int0 On_int0
'Der Interrupt INT0 wird ausgelöst wenn der Pin PD2 gegen GND gezogen wird.
Enable Interrupts 'Interrupts global einschalten

'ADC für Tasten Auswertung und LDR
Config Adc = Single , Prescaler = Auto , Reference = Avcc

'Unterprogramm Tastenabfrage
Declare Sub Tastenabfrage

'OneWire Bus konfigurieren
Config 1wire = Porta.7

'I2C konfigurieren
Config Sda = Portc.1
Config Scl = Portc.0

'Konstanten für RTC-Modul
Const Ds1307_adresse = 208
Const Ds1307_lese_adresse = 209
I2cinit

'Variablen für Tastenabfrage
Dim ADC_Wert_Tasten as Word
Dim Offen As Bit
Dim Auswahl As Bit
Dim Links As Bit
Dim Runter As Bit
Dim Hoch As Bit
Dim Rechts As Bit

Dim Schlafen as Word

'Variablen für Menue
Dim Untermenue as Byte
Untermenue = 1
dim Zaehler as Byte


Dim A As Byte
Dim B As Byte
B = 1
Dim C As Byte
C = 1
Dim D As Byte
D = 12
Dim E As Byte
E = 0
Dim F As Byte
F = 0
Dim G As Byte
G = 0
Dim I As Byte
Dim S As Byte
S = 5
Dim T As Byte
T = 1
Dim Q As Integer

Dim Wecken As Byte
Dim Wochentag As Byte
Dim Tag As Byte
Dim Monat As Byte
Dim Jahr As Byte
Dim Stunden As Byte
Dim Minuten As Byte
Dim Sekunden As Byte

Dim E_wecken As Eram Byte
Dim E_dummy As Eram Byte
Dim Einschalt_stunde1 As Byte
Dim E_einschalt_stunde1 As Eram Byte
Dim Einschalt_minute1 As Byte
Dim E_einschalt_minute1 As Eram Byte
Dim Ausschalt_stunde1 As Byte
Dim E_ausschalt_stunde1 As Eram Byte
Dim Ausschalt_minute1 As Byte
Dim E_ausschalt_minute1 As Eram Byte

Einschalt_stunde1 = E_einschalt_stunde1
Einschalt_minute1 = E_einschalt_minute1
Ausschalt_stunde1 = E_ausschalt_stunde1
Ausschalt_minute1 = E_ausschalt_minute1
Wecken = E_wecken

If Wecken > 1 Then
Wecken = 0
End If
If Einschalt_stunde1 >= 25 Then
Einschalt_stunde1 = 0
End If
If Einschalt_minute1 >= 61 Then
Einschalt_minute1 = 0
End If
If Ausschalt_stunde1 >= 25 Then
Ausschalt_stunde1 = 0
End If
If Ausschalt_minute1 >= 61 Then
Ausschalt_minute1 = 0
End If

E_wecken = Wecken
E_einschalt_stunde1 = Einschalt_stunde1
E_einschalt_minute1 = Einschalt_minute1
E_ausschalt_stunde1 = Ausschalt_stunde1
E_ausschalt_minute1 = Ausschalt_minute1


Dim Raus As Single
Dim Ident(8) As Byte
Dim Datenarry(9) As Byte

Ident(1) = 1wsearchfirst()
Waitms 300

Hintergrundbeleuchtung = 1
Cls
Lcd "Stallsteuerung "
Locate 2 , 1
Lcd "die Zweite "
Wait 4
Cls
For I = 0 To 8
ADC_Wert_Tasten = Getadc(0)
Gosub Tastenabfrage
Lcd "zum Uhr stellen"
Locate 2 , 1
Lcd "Auswahl druecken"
Lcd S
If Auswahl = 1 Then Goto Stellen
S = S - 1
Wait 1

Next I
S = 0
Goto Fertig


Stellen:
Cls
Lcd "Uhr Stellen"
Wait 2
Cls
Lcd "Wochentag "
do
ADC_Wert_Tasten = Getadc(0)
Gosub Tastenabfrage
Locate 1 , 11
if T = 1 then LCD "Mo"
if T = 2 then LCD "Di"
if T = 3 then LCD "Mi"
if T = 4 then LCD "Do"
if T = 5 then LCD "Fr"
if T = 6 then LCD "Sa"
if T = 7 then LCD "So"
Waitms 200
If Hoch = 1 Then
Gosub Formel1
End If
if Runter = 1 then
gosub Formel101
end if
loop until Auswahl = 1

Cls
Lcd "Tag "
wait 1

do
ADC_Wert_Tasten = Getadc(0)
Gosub Tastenabfrage
Locate 1 , 5
Lcd B
lcd " "
Waitms 100
If Hoch = 1 Then
Gosub Formel2
End If
if Runter = 1 then
gosub Formel202
end if
loop until Auswahl = 1

Cls
Lcd "Monat "
wait 1

do
ADC_Wert_Tasten = Getadc(0)
Gosub Tastenabfrage
Locate 1 , 7
Lcd C
LCD " "
Waitms 100
If Hoch = 1 Then
Gosub Formel3
End If
if Runter = 1 then
gosub Formel303
end if
loop until Auswahl = 1

Cls
Lcd "Jahr "
wait 1

do
ADC_Wert_Tasten = Getadc(0)
Gosub Tastenabfrage
Locate 1 , 6
Lcd 20
Lcd D
Waitms 100
If Hoch = 1 Then
Gosub Formel4
End If
if Runter = 1 then
gosub Formel404
end if
loop until Auswahl = 1

Cls
Lcd "Stunden "
wait 1

do
ADC_Wert_Tasten = Getadc(0)
Gosub Tastenabfrage
Locate 1 , 9
Lcd E
LCD " "
Waitms 100
If Hoch = 1 Then
Gosub Formel5
End If
if Runter = 1 then
gosub Formel505
end if
loop until Auswahl = 1

Cls
Lcd "Minuten "
wait 1

do
ADC_Wert_Tasten = Getadc(0)
Gosub Tastenabfrage
Locate 1 , 9
Lcd F
LCD " "
Waitms 100
If Hoch = 1 Then
Gosub Formel6
End If
if Runter = 1 then
gosub Formel606
end if
loop until Auswahl = 1

Cls
Lcd "Sekunden "
wait 1

do
ADC_Wert_Tasten = Getadc(0)
Gosub Tastenabfrage
Locate 1 , 10
Lcd G
LCD " "
Waitms 100
If Hoch = 1 Then
Gosub Formel7
End If
if Runter = 1 then
gosub Formel707
end if
loop until Auswahl = 1


Wochentag = T
Tag = B
Monat = C
Jahr = D
Stunden = E
Minuten = F
Sekunden = G

Tag = Makebcd(tag)
Monat = Makebcd(monat)
Jahr = Makebcd(jahr)
I2cstart
I2cwbyte Ds1307_adresse
I2cwbyte 3
I2cwbyte Wochentag
I2cwbyte Tag
I2cwbyte Monat
I2cwbyte Jahr
I2cstop

Sekunden = Makebcd(sekunden)
Minuten = Makebcd(minuten)
Stunden = Makebcd(stunden)
I2cstart
I2cwbyte Ds1307_adresse
I2cwbyte 0
I2cwbyte Sekunden
I2cwbyte Minuten
I2cwbyte Stunden
I2cstop



'Einsprung
Fertig:
Cls
'Hauptschleife
Do
If Taster1 = 0 then goto Hochzaehlen
ADC_Wert_Tasten = Getadc(0) 'ADC in = PC.0
Gosub Tastenabfrage

if Schlafen >= 510 then
cls
Locate 1 , 1
LCD "Schlafmodus"
wait 2
enable INT0 'INT0 wieder einschalten
display off 'Display abschalten
Hintergrundbeleuchtung = 0 'Hintergrundbeleuchtung abschalten
config powermode = powerdown 'schlafengehen
end if

I2cstart
I2cwbyte Ds1307_adresse
I2cwbyte 0
I2cstop

I2cstart
I2cwbyte Ds1307_lese_adresse
I2crbyte Sekunden , Ack
I2crbyte Minuten , Ack
I2crbyte Stunden , Ack
I2crbyte Wochentag , Ack
I2crbyte Tag , Ack
I2crbyte Monat , Ack
I2crbyte Jahr , Nack
I2cstop

Locate 1 , 1
Wochentag = Makedec(wochentag)
Select Case Wochentag
Case 1 : Lcd "Mo "
Case 2 : Lcd "Di "
Case 3 : Lcd "Mi "
Case 4 : Lcd "Do "
Case 5 : Lcd "Fr "
Case 6 : Lcd "Sa "
Case 7 : Lcd "So "
End Select

Locate 1 , 5
Lcd Bcd(stunden) ; ":" ; Bcd(minuten) ; ":" ; Bcd(sekunden) ; " "

If Wecken = 1 Then
Locate 1 , 16
Lcd Chr(1)
End If

Stunden = Makedec(stunden)
Minuten = Makedec(minuten)
If Einschalt_stunde1 = Stunden And Einschalt_minute1 = Minuten And Wochentag <= 7 And Wecken = 1 Then
Kanal1 = 1
Locate 2 , 16
Lcd Chr(0)
End If
If Ausschalt_stunde1 = Stunden And Ausschalt_minute1 = Minuten And Wecken = 1 Then
Kanal1 = 0
Locate 2 , 15
Lcd " "
End If

Waitms 50
If Stellen_taste = 0 Then
Goto Weckzeit_stellen
End If
Q = Q + 1
If Q = 50 Then Gosub Temperatur_einlesen
If Q = 100 Then Gosub Temperatur_einlesen
If Q = 150 Then Gosub Temperatur_einlesen
If Q = 200 Then Gosub Temperatur_einlesen
If Q = 250 Then Gosub Temperatur_einlesen
If Q = 251 Then Gosub Datum
If Q = 252 Then
Q = 0
End If
Schlafen = Schlafen + 1

Loop



End


Menue:
Zaehler = 0
Cls
LCD "Menue"
wait 3
cls
do
Select case Untermenue
case 1 : locate 1 , 1 : LCD "Uhr stellen " : locate 2 , 1 : LCD "Klappensteurung "
case 2 : locate 1 , 1 : LCD "Klappensteurung " : Locate 2 , 1 : LCD "Lichtsteuerung "
case 3 : locate 1 , 1 : LCD "Lichtsteuerung " : locate 2 , 1 : LCD "Temp-steuerung "
case 3 : locate 1 , 1 : LCD "Temp-steuerung " : locate 2 , 1 : LCD "Feuchtesteuerung"
case 4 : locate 1 , 1 : LCD "Feuchtesteuerung" : locate 2 , 1 : LCD "Zurück "
case 5 : locate 1 , 1 : LCD "Zurück " : locate 2 , 1 : LCD "Uhr stellen "
end SELECT
ADC_Wert_Tasten = Getadc(0)
Gosub Tastenabfrage
If Hoch = 1 then Untermenue = Untermenue + 1
if Runter = 1 then Untermenue = Untermenue - 1
If Untermenue > 5 then Untermenue = 1
If Untermenue < 1 then Untermenue = 5
if Auswahl = 1 then goto Untermenue_weiter
waitms 200
loop


Untermenue_weiter:
Select case Untermenue
case 1 : goto STELLEN
case 2 : goto STELLEN
case 3 : goto STELLEN
case 4 : goto STELLEN
case 5 : goto FERTIG
end select



Temperatur_einlesen:
Gosub Lesen ' "Convert ALL T on the 1w-bus"
'if you use 2-wire, could be reduced to 200us
1wverify Ident(1) 'Issues the "Match ROM "
Locate 1 , 1
If Err = 1 Then
Lcd "ID-Nicht gefunden " 'Err = 1 if something is wrong
Elseif Err = 0 Then
Waitms 50 'Überspringe ROM
1wreset
1wwrite &HCC 'lcd " Sensor found"
1wwrite &HBE
Datenarry(1) = 1wread(9) 'read bytes into array
If Datenarry(9) = Crc8(datenarry(1) , 8) Then
Gosub Wandler 'Dg = Decigrades(sc(9))
End If
End If
Locate 2 , 1
Lcd "Temp: " ; Fusing(raus , "#.#") ; Chr(223) ; "C "
Waitms 50
Return

Datum:
Locate 1 , 4
Lcd Bcd(tag) ; "." ; Bcd(monat) ; ".20" ; Bcd(jahr)
Wait 4
Return

Formel1:
incr T
If T = 8 Then T = 1
Waitms 500
return

Formel101:
decr T
If T = 0 Then T = 7
Waitms 500
return

Formel2:
incr B
If B => 32 Then B = 1
Waitms 500
return

Formel202:
decr B
if B <= 0 then B = 31
waitms 500
return

Formel3:
incr C
If C => 13 Then C = 1
Waitms 500
return

Formel303:
decr C
if C <= 0 then C = 12
waitms 500
return

Formel4:
incr D
If D => 50 Then D = 12
Waitms 300
return

Formel404:
decr D
if D <= 11 then D = 50
waitms 500
return

Formel5:
incr E
If E => 24 Then E = 0
Waitms 300
return

Formel505:
decr E
if E <= 0 then E = 23
waitms 500
return

Formel6:
incr F
If F => 60 Then F = 0
Waitms 300
return

Formel606:
decr F
if F <= 0 then F = 59
waitms 500
return

Formel7:
incr G
If G => 60 Then G = 0
Waitms 300
return

Formel707:
decr G
if G <= 0 then G = 59
waitms 500
return

Formel8:
Einschalt_stunde1 = Einschalt_stunde1 + 1
If Einschalt_stunde1 = 24 Then
Locate 1 , 16
Lcd " "
Einschalt_stunde1 = 0
End If
Locate 1 , 15
Lcd Einschalt_stunde1
Waitms 300
Goto Sprung8

Formel9:
Einschalt_minute1 = Einschalt_minute1 + 1
If Einschalt_minute1 = 60 Then
Locate 1 , 16
Lcd " "
Einschalt_minute1 = 1
End If
Locate 1 , 15
Lcd Einschalt_minute1
Waitms 200
Goto Sprung9

Formel10:
Ausschalt_stunde1 = Ausschalt_stunde1 + 1
If Ausschalt_stunde1 = 24 Then
Locate 1 , 16
Lcd " "
Ausschalt_stunde1 = 0
End If
Locate 1 , 15
Lcd Ausschalt_stunde1
Waitms 300
Goto Sprung10

Formel11:
Ausschalt_minute1 = Ausschalt_minute1 + 1
If Ausschalt_minute1 = 60 Then
Locate 1 , 16
Lcd " "
Ausschalt_minute1 = 0
End If
Locate 1 , 15
Lcd Ausschalt_minute1
Waitms 200
Goto Sprung11

dussel
30.03.2014, 20:43
Aufwecken mit Watchdog klappt nicht. Der Kontroller (Atmega32) kann kein Watchdog Interrupt.
Also - habe ich die original Hardware geordert - erspart später das Anpassen!
Als Grundmodul ist es jetzt ein Arduino Uno geworden, dazu dann doch das LCD/Keypad Modul, ein Protoshield, eine Relais-Platine - ein Motortreiber Modul - und noch mal ein RTC Modul.
Bin gespannt!
Den endgültigen Aufbau stelle ich mir wie folgt vor:

Unten der Arduino
da drüber das Protoshield / ist für die benötigten Anschlüsse und ein Mosfet (Licht)
als letztes dann das LCD Shield

RTC und Motortreiber (Relaisplatine) werden an das Protoshield angeschlossen

dussel
03.04.2014, 12:21
So - die Hardware ist jetzt fast komplett da. Das Einzige was noch fehlt ist ein spezielles Prototypen Board aus Spanien.
Sieht Alles sehr gut aus mit einer Ausnahme: Das Keypad LCD Shield.
Diese Platine hat einen kleinen Layout Fehler - der Pin für die Hintergrundbeleuchtung wird in der original Beschaltung etwas überlastet. Wird er auf High geschaltet fließen satte 80mA.
Gestern habe ich mich um die Verteilung der freien Pins gekümmert und festgestellt das mir eigentlich Zwei fehlen - MERDE!
Werde versuchen die Pins vom LCD doppelt zu nutzen.
Fotos von der Hardware folgen die nächsten Tage.

dussel
05.04.2014, 05:16
Auswertung des Lichtsensors klappt jetzt - dto. der Watchdogtimer Interrupt und das Menue ist wieder ein Stück fertiger.
Als Nächstes muß jetzt die Steuerung wieder an die Klappe um die Theorie in der Praxis zu bewerten.

Für die Interessierten das Programm (welches noch an tausend Stellen verbessert werden muß!)
119385

noxx
17.06.2015, 11:52
Hallo,
ich möchte gerne in meinen kl. Stall ebenfalls eine Steuerung und Überwachung
einsetzen. Bin nun auf diesen Thread gestossen. Leider läuft das ganze nur auf
dem Arduino wie es scheint, hätte noch so viel für den PI rumliegen.

Eine Frage, warum nicht auf fertige Lösungen, zb für den PI zugreifen.

PiLight oder FHEM (etwas teurer) sollte doch das ganze genausso gut machen
können, oder?

Gruß

noxx
20.06.2015, 16:56
Möchte deinen Thread nicht zumüllen, suche aber noch Ideen. :)

Hallo, habe mich nunmal rangemacht das ganze mit Pimatic umzusetzen.

Bisher läuft nur Webcam und Lichtsteuerung. Klemmen tut es noch bei der
Simulation eines Sonnenauf und Untergangs. Der Dimmer schaltet nur und dimmt
nicht richtig... :(

Benutze habe ich an Hardware:
Raspberry PI 2 (40€)
WLAN Stick Edimax (10€)
Webcam Creative HD (20€)
Arduino Nano (10€)
Aukru 433 MHz Funk- Sende und Empfänger (5€)
Intertechno Funksteckdose ITLR-300 (20€)

Einer Erfahrung mit Pimatic?

Gruss

noxx
23.06.2015, 14:49
So, Pimatic läuft. Mehr oder weniger. System hängt sich mit
dem Arduino dran manchmal auf.
Aber es läuft der Sonnen -und Sonnenuntergang im Stall.

Teste nun nochmal das ganze mit Pilight. Leider wird Pilight rein
Textbasierend konfiguriert, muss man wohl mehr aufpassen...

noxx
12.07.2015, 19:59
Also, Pimatic kann ich wirklich für sowas empfehlen, läuft sehr gut. Sitze gerade
an der Klappensteuerung. Bin erstaunt, wie flexibel das System ist und wie hilfbereit
die Community.

Dodo88
15.04.2021, 14:00
Moinsen Noxx,

Ich nutze schon seit paar Jahren pimatic für mein smarthome daheim :)

Und da mein schwager sich jetzt hühner zugelegt hat und mich gefragt hat ob ich mir was für die Klappe einfallen lassen kann, dachte ich ebenfalls an pimatic, allerdings fehlt mir noch das know-how, wie ich den Motor ansteuern kann. Kannst du mir da bitte helfen?

Ganz liebe Grüße aus Süd-Hessen :)

P. S. An den Rest, wie gesagt bin ich da überhaupt nicht im Thema drin. Würde es denn sinn machen im haus im sommer mit einem Lüfter die luft ab einer bestimmten Temperatur umzuwälzen, oder ist das unsinn und macht keinen Sinn, ist sogar im gegenteil sogar nur ein unnötiger hühnerschreck?

Lg Dodo

_0tto_
15.04.2021, 17:06
...
P. S. An den Rest, wie gesagt bin ich da überhaupt nicht im Thema drin. Würde es denn sinn machen im haus im sommer mit einem Lüfter die luft ab einer bestimmten Temperatur umzuwälzen, oder ist das unsinn und macht keinen Sinn, ist sogar im gegenteil sogar nur ein unnötiger hühnerschreck?

Lg Dodo

Umwälzen macht nur Sinn für Wesen wie uns, die Schweißdrüsen haben und sich in den Luftstrom stellen können.
Den Stall mit einem Lüfter zu versehen macht schon Sinn, wenn Stallluft aus dem Stall befördert und dafür Außenluft nachgeführt wird; Das Ganze nur, sofern die Außenluft kühler als die Stallluft ist.
Ich habe so einen Lüfter in meinem Stall und er läuft die ganze Nacht durch. Es gibt leisere wie den Meinigen (34db) dann aber auch teurer, an den Hühnern kann ich keine negativen Auswirkungen erkennen. Mehr Geld will ich für einen Lüfter aber nicht investieren, so alle 2 Jahre muss ich den auswechseln weil die Staubbelastung doch schon sehr hoch ist und er dann irgendwann festsitzt.
Den ersten dem es so ergangen ist habe ich, soweit wie möglich, auseinander genommen und sauber gemacht. Er hat dann noch ein weiteres 3/4 Jahr funktioniert und dann war Schluss.
So ein Lüfter wie ich ihn benutze kostet ca. 25€ und jetzt wechsle ich den einfach aus, wenn es soweit ist.

Dodo88
16.04.2021, 23:51
Klingt interessant, danke für die Info :)
Ja ich dachte so an eine Art luft Austausch, bzw eben um hitzestau zu vermeiden, falls das nen Thema sein könnte, aber da werd ich mal das mit der Belüftung vorschlagen :)

Danke