PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fertiges Projekt:RN-Steuerung-Allzweckboard für Haus&Hof



Frank
30.08.2006, 12:13
Mal wieder ein fertiges und interessantes RN-Projekt für diverse Steueraufgaben im Haus etc.. Kompatibel zu allen anderen RN-Boards

RN-Steuerung


RN-Steuerung ist das Board der RN-Serie das als Schwerpunkt für Steueraufgaben konzipiert ist. Es ist wie die meisten RN-Boards universell für zahlreiche Anwendungen verwendbar, jedoch bietet es duch die reichhaltige Ausstattung auch für konkrete Steueraufgaben ab, wobei dann keine oder kaum externe Bauteile mehr notwendig werden.


Denkbare Anwendungen wären:


Füllstandsmesser mit Digitalanzeige und Funküberwachung
Wetterstationen mit Funkdatenübermittlung
Regenwasser Nachlaufsteuerungen mit Füllstandsmessung
Genaue Zeitmessungen
Digital- oder Funkuhr mit Steueraufgaben
Komplette Alarmanlage
Netzgerät mit digitaler Spannungs- und Stromanzeige
Roboter- oder Modellbausteuerung mit Funksteuerung und diverse andere Dinge wo Sensoren, Relais, Schalter, Funk, Digitalanzeige oder Alarmgeber gebraucht werden
und vieles mehr



Neben der reichhaltigen Ausstattung mit Relais, elektronischen Lastschaltern, Lautsprecher, sehr lautem Alarmgeber (90dB), zwei eingebauten Spannungen (5V und eine regelbare zwischen 3,3 und 30V), großer Digitalanzeige, Led´s Tastern, diversen Anschlüssen sowie Funkmodulsteckplatz wurde das Board so ausgelegt das die meisten Anschlüsse über eine Seite erreichbar sind. Dadurch eignet sich das Board ideal auch für den Einbau in Gehäuse.
Natürlich sind wichtige Schnittstellen wie ISP, I2C, DAT(LCD) kompatibel zu den RN-Definitionen. Das Funkmodul hat eine durchschnittliche Reichweite zwischen 200 und 250 Metern und ist kompatibel zu den anderen Boards RN-Funk, RN-Mega128Funk,RN-Mega8Plus und RN-Funk. Dies erhöht die Anwendungsmöglichkeiten um ein vielfaches.



https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=1078

Als hier die Leistungsmerkmale auf einen Blick:


Schneller und einfach zu programmierender AVR Controller ATMega32 (kompatibel zu RN-Control)
16 Mhz Taktfrequenz (durch anderen Quarz auch reduzierbar)
2 Relais mit jeweils 1 Umschalter (schalten bis zu 10A)
2 elektronische Lastschalter (ohne Abnutzung) jeweis bis 34V/4,4A
5V / 2A Spannungssstabilisierung auf dem Board
Zweite Spannungsstabilisierung 3,3 V bis 30 V auf dem Board regelbar. Die Spannung kann für externe Aktoren / Verbraucher genutzt werden
4 Eingänge zur Spannungsmessung (es können sowohl kleine Spannungen im mV Bereich oder hohe Spannungen bis ca. 34V gemessen werden. Möglich wird dies durch vier vorhandene regelbare Spannungsteiler pro Messport (4 Spindeltrimmer).
2 Eingänge die direkt zur Strommessung ausgelegt sind bequem. Diese sind vorwiegend für Standardsensoren die über die weit verbeitete "4 bis 20mA Schnittstelle" verfügen gedacht. Da jedoch der Messwiderstand (Shunt) beliebig bestückt werden kann, können auch andere Ströme gemessen werden.
2 weitere Digitalports mit Timerfunktion als Ein- und Ausgang über Steckklemme erreichbar. Beliebig verwendbar, auch für schnelle Ereignissmessungen
Ein 10 poliger Universal Stecker nach RN-Definition. Zum direkten Anschluss von einem LCD-Display , 2 Motortreibern (z.B. RN-DVNH2Dualmotor), Tastern oder beliebigen anderen Aktoren/Sensoren (8 Portleitungen verfügbar)
I2C Anschluss - I2C-Bus für zahlreiche Erweiterungsplatinen (z.B. Sprachausgabe RN-Speak, Relaisboard RN-Relais, Servoboards, RN-KeyLCD, RN-MotorControl, Ultraschallsensoren usw.
ISP – Anschluß für die Programmierung.
Funkmodulsteckplatz - Ein Funkmodul muss nur eingesteckt werden, schon ist es funktionsfähig. Dies spart erhebliche Kosten gegenüber Zusatzfunkboard.
Steckklemmen und Schraubklemmen für den einfachen Anschluss von Sensoren und Aktoren. Mit allen Ports wird auch immer ein Gegenpotential (also GND) über Steckklemme nach außen geführt.
3 LED´s (rot, gelb, grün) für beliebige Verwendung programmierbar
2 weitere LED´s zeigen Relaiszustand an
1 Minilautsprecher für Tonausgabe
1 sehr lauter Alarmgeber, bis ca. 90dB (weit hörbar, für Alarmaufgaben einsetzbar)
Sehr große leuchtstarke vierstellige Digitalanzeige. Zeigt 4 Ziffern (wahlweise auch einige Buchstaben) so deutlich an, das diese über weite Entfernung gut lesbar sind. Ideal für die Anzeige von Füllständen, Ereignissen, Zählerstände, Zeitangaben etc.
Die eingebaute Digitalanzeige ist auch in Helligkeit programmierbar. Jedes Segment kann einzeln gesetzt werden, dennoch wird kein Port dadurch belegt (durch vorhandenen I2C Bus). Moderner LED Chip!
5V und die regelbare 3,3V bis 34V Spannung über Anschlüsse leicht erreichbar.
Akkustische ISP-Überwachung wenn Board programmiert wird
1 Reset Taster
3 Taster für beliebige Verwendung programmierbar
Leistungstarkes Funkmodul 433Mhz mit 10 Kanälen einsetzbar (optional). Ganz einfach wie RS232 ansprechbar. Komplett per Software konfigurierbar (Sendeleistung, Kanal etc.).
SUB-D Antennenanschluß (Antenne kann wahlweise auch eingelötet werden. Für ca. 100m – 200m Reichweite reicht gewöhnlich ein Stück 12 cm Draht)
Betriebsspannung wahlweise zwischen 7,2 und 16V (empfohlen 8 bis 14 V) für 5V Spannungsstabilisierung
Betriebsspannung für zweite regelbare Spannung wahlweise zwischen 5 und 35V
Programmierbar in zahlreichen Sprachen, z.B. Basic (BASCOM Compiler, Demo eingeschränkt bis 4K wird mitgeliefert), C (C-Compiler GCC wird mitgeliefert), Assembler, Pascal
Umfangreiche deutsche Dokumentation mit Basic Programmbeispielen
Sehr preiswerter Bausatz oder Platine erhältlich
Nahezu alle RN-Erweiterungen / Zusatzboards / Sensoren können angeschlossen werden
Europaformat (ca. 100x160mm)


Dokumentation findet man hier:
https://www.roboternetz.de/phpBB2/dload.php?action=file&file_id=346

Bestellmöglichkeit für Bausatz oder auch nur Platine hier:
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=64&products_id=159



Die Features im Diagramm:
https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=1079

Frank
30.08.2006, 12:15
Ein Beispiel und Testprogramm in Basic



'################################################# ##
'rnsteuerung.bas Demo zu RN-Steuerung
'für
'RoboterNetz Board RN-STEUERUNG ab Version 1.0 und


'
'Aufgabe:
' Dieses Testprogramm demonstriert die Ansteuerung
' des großen universellen Steuerboardes RN-Steuerung


'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de oder robotikhardware.de
'Eigene Programmbeispiele sind im Roboternetz gerne willkommen!
'################################################# #############





' ********* Übliche bei RN-Steuerung ***************
Declare Sub Init_digitalanzeige()
Declare Sub Ziffer_digitalanzeige(byval Ziffernummer As Byte , Byval Zahl As Byte , Byval Dezimalpunkt As Byte)
Declare Sub Zahl_digitalanzeige(byval Zahl As Integer)
Declare Function Rn_sendefunkbefehl(byval Funkbefehl As String) As Byte
Declare Function Rn_empfange_funkstring(dat As String) As Byte


$regfile = "m32def.dat"
$hwstack = 82 '80
$framesize = 68 ' 64
$swstack = 68 '44


$crystal = 7372800 'Quarzfrequenz
$baud = 19200


Config Scl = Portc.0 'Ports fuer IIC-Bus
Config Sda = Portc.1


Config Pinb.2 = Input
Portb.2 = 1
Taste1 Alias Pinb.2

Config Pinb.5 = Input
Portb.5 = 1
Taste2 Alias Pinb.5

Config Pinb.6 = Input
Portb.6 = 1
Taste3 Alias Pinb.6


Config Pinb.3 = Output
Alarmgeber Alias Portb.3

Config Pinb.4 = Output
Relais1 Alias Portb.4

Config Pinc.7 = Output
Relais2 Alias Portc.7


Config Pinc.2 = Output
Ledgruen Alias Portc.2

Config Pinc.3 = Output
Ledgelb Alias Portc.3

Config Pinc.4 = Output
Ledrot Alias Portc.4

Config Pinc.6 = Output
Ausgang_ua Alias Portc.6

Config Pinc.5 = Output
Ausgang_ub Alias Portc.5


Const Slave_digi = &H70


Sound Portb.7 , 400 , 450 'BEEP
Sound Portb.7 , 400 , 250 'BEEP
Sound Portb.7 , 400 , 450 'BEEP
' ********* Übliche bei RN-Steuerung Ende***************
Config Serialin = Buffered , Size = 120
Config Serialout = Buffered , Size = 120
Enable Interrupts



Dim I As Integer
Dim P As Byte
Dim U As Byte
Dim Rueck As Byte
Dim S As String * 90

Wait 1
Print
Print "**** RN-STEUERUNG *****"
Print "Das neue große komplette Steuerboard"
Print

I2cinit
Init_digitalanzeige

Wait 1






'Testet Funkmodul und sendet Version zurück
'Alarmgeber ertönnt sofort, wenn Befehl nicht als Echo zurückkommt
'Denkbare Ursache: Falsche Baudrate eingestellt (bei neuen Modulen in der Regel 19200 baud)
'Ruft die Firmware Versionsnummer des Easyradio Funkmodules ab
Rueck = Rn_sendefunkbefehl( "ER_CMD#T3")
If Rueck <> 0 Then 'Error
For I = 1 To 20
Alarmgeber = 1
Waitms 100
Alarmgeber = 0
Waitms 100
Next
End If
Rueck = Rn_empfange_funkstring(s)
Print "Funkmodul Version: " ; S



'Test der vierstelligen Digitalanzeige
'Nacheinander alle Ziffern bis 9 hochzählen
For P = 1 To 4
For U = 0 To 9
Ziffer_digitalanzeige P , U , 0
Waitms 100
Next U
Next P
Wait 2

'Test der vierstelligen Digitalanzeige
'Zählt in hoher Geschwindigkeit bis 4000
For I = 1 To 4000
Zahl_digitalanzeige I
Waitms 5
Next
Wait 1




'LED Test durch Lauflicht
For I = 1 To 20
Ledrot = 0
Waitms 400
Ledrot = 1
Ledgelb = 0
Waitms 400
Ledgelb = 1
Ledgruen = 0
Waitms 400
Ledgruen = 1
Waitms 400
Next
Ledgruen = 0 'Gruen bleibt an
Wait 1


'Relais 1 wird getestet
For I = 1 To 20
Relais1 = 1
Wait 1
Relais1 = 0
Wait 1
Next
Wait 1


'Relais 2 wird getestet
For I = 1 To 20
Relais2 = 1
Wait 1
Relais2 = 0
Wait 1
Next
Wait 1


'Ausgangsspannung des elektronischen Power Schlaters UA umschalten
'Nicht sichtbar, entweder Verbraucher anschliessen oder messen
For I = 1 To 5
Sound Portb.7 , 400 , 250 'BEEP
Ausgang_ua = 1
Wait 2
Sound Portb.7 , 400 , 250 'BEEP
Ausgang_ua = 0
Wait 2
Next
Wait 1


'Ausgangsspannung des elektronischen Power Schlaters UB umschalten
'Nicht sichtbar, entweder Verbraucher anschliessen oder messen
For I = 1 To 5
Sound Portb.7 , 400 , 250 'BEEP
Ausgang_ub = 1
Wait 2
Sound Portb.7 , 400 , 250 'BEEP
Ausgang_ub = 0
Wait 2
Next
Wait 1


'Alarm wird getestet
For I = 1 To 20
Alarmgeber = 1
Waitms 100
Alarmgeber = 0
Waitms 100
Next
Wait 1


'Test abgeschlossen, nun wird noch ständig über Funk gesendet
' Funkmodultest
Do
For I = 1 To 30000
Print "www.robotikhardware.de Z:" ; I
Waitms 500
Next I
Loop

End









' ----------------- Hilfreiche Unterfunktionen ------------------------


Sub Init_digitalanzeige()
Local Z As Byte

I2cstart
I2cwbyte Slave_digi
I2cwbyte 0 'Control Byte

'Dynamic Alternative Mode und Helligkeit
'Die oberen 3 Bits bestimmen die Helligkeit
'Wenn es dunkler sein soll dann z.b. &B0110111
' I2cwbyte &B1110111
I2cwbyte &B0110111
I2cstop

'Alle Ziffern auf 0
For Z = 1 To 4
Ziffer_digitalanzeige Z , 0 , 0
Next Z
End Sub


Sub Ziffer_digitalanzeige(byval Ziffernummer As Byte , Byval Zahl As Byte , Byval Dezimalpunkt As Byte)
Local Segmente As Byte

I2cstart
I2cwbyte Slave_digi
I2cwbyte Ziffernummer

Select Case Zahl
Case 0:
Segmente = &H3F '00111111
Case 1:
Segmente = &H06
Case 2:
Segmente = &H5B
Case 3:
Segmente = &H4F '01001111
Case 4:
Segmente = &H66
Case 5:
Segmente = &H6D
Case 6:
Segmente = &H7D
Case 7:
Segmente = &H07
Case 8:
Segmente = &H7F '01111111
Case 9:
Segmente = &H67
Case 10: 'Steht für keine Ziffer
Segmente = &H0

Case 11: 'Steht für keine Ziffer
Segmente = &B10111110 'Buchstabe V
Case 12: 'Steht für keine Ziffer
Segmente = &B10111000 'Buchstabe L



Case Else :
Segmente = &H80 'Ansonsten Dezimalpunkt
End Select

If Dezimalpunkt = Ziffernummer Then Segmente = Segmente Or &H80
I2cwbyte Segmente
I2cstop
End Sub



Sub Zahl_digitalanzeige(byval Zahl As Integer)
Local Tausender As Integer
Local Hunderter As Integer
Local Zehner As Byte
Local Einer As Byte
Local Temp As Integer
Local Temp2 As Byte
Local Abschneiden As Byte



Tausender = Zahl / 1000
Temp = Tausender * 1000
Zahl = Zahl - Temp

Hunderter = Zahl / 100
Temp = Hunderter * 100
Zahl = Zahl - Temp

Zehner = Zahl / 10
Temp = Zehner * 10
Zahl = Zahl - Temp

Einer = Zahl

'Nullen vorne entfernen
If Tausender = 0 Then
Tausender = 10
If Hunderter = 0 Then
Hunderter = 10
If Zehner = 0 Then
Zehner = 10
End If
End If
End If


Ziffer_digitalanzeige 4 , Einer , 0
Ziffer_digitalanzeige 3 , Zehner , 0
Temp2 = Hunderter
Ziffer_digitalanzeige 2 , Temp2 , 0
Temp2 = Tausender
Ziffer_digitalanzeige 1 , Temp2 , 0

End Sub




'Sendet EasyRadio Befehl und prüft ob korrekt empfangen
'Rückgabe: 0=Erfolgreich 1=Fehler
Function Rn_sendefunkbefehl(byval Funkbefehl As String) As Byte
Local Sech As String * 20
Local Z As Byte

Print Funkbefehl;
Waitms 40
Sech = ""
Do 'Auf Echo warten
Z = Inkey()
Sech = Sech + Chr(z)
Loop Until Z = 0

If Left(sech , 9) = Funkbefehl Then
Print "ACK";
Rn_sendefunkbefehl = 0
Else
Rn_sendefunkbefehl = 1
End If

End Function


'Empfängt Datenstring (Holt alles aus dem Eingabebuffer)
'Rückgabe: 0=Erfolgreich 1=Fehler
Function Rn_empfange_funkstring(dat As String) As Byte
Local Z As Byte

Waitms 20
Dat = ""
Do 'Auf Echo warten
Z = Inkey()
If Z <> 0 Then Dat = Dat + Chr(z)
Loop Until Z = 0
Rn_empfange_funkstring = 0
End Function

Frank
30.08.2006, 12:24
Hier eine Beispielanwendung

Regenwassersteuerung, mit Funküberwachung und diversen Luxus.
In dem Beispiel zusätzlich mit Schaltnetzteil ausgestattet (normalerweise nicht nötig) um geringsten Stromverbrauch zu erreichen


http://www.shop.robotikhardware.de/shop/catalog/images/artikelbilder/rnsteuerung/rnsteuerungbeispiel1.jpg

Millenniumpilot
30.08.2006, 14:25
Hallo Frank,

You make my day ;-)

Bisher habe ich für solche Zwecke RN_Mega8, RN-Digi, RN-Relais usw. benötigt. Werde ich mir gleich mal anschauen ;-)

Gruß Dirk

Frank
31.08.2006, 10:12
Hallo Frank,
You make my day ;-)
Bisher habe ich für solche Zwecke RN_Mega8, RN-Digi, RN-Relais usw. benötigt. Werde ich mir gleich mal anschauen ;-)
Gruß Dirk

Hallo Dirk,
genau so ist es. Es ist sogar quasi eine Art Kombination von vier Boards auf einer Platine: RN-Control, RN-Relais, RN-Digi und RN-Funk. Sogar noch ein regelbares Spannungsquelle ist untergebracht.
Das ganze ist dann nicht nur viel kompakter, einfacher zu handhaben sondern erheblich günstiger als die Kombination dieser Einzelboards. Ich denke das Board kann viele Sachen im Haus/Garten übernehmen und wahlweise wegen der Funkanbindung auch gut in eine zentrale Haussteuerung eingebunden werden. Die Zentralstelle/Überwachungseinheit hab ich privat bei mir mit RN-Mega128Funk angelegt.

Gruß Frank

Millenniumpilot
07.10.2006, 22:30
Hallo Frank,

wie sieht den das Layout um die Relais herum aus? Welche Mindestabstaende wurden eingehalten? Meine Frage ist eigendlich: ist das Board freigegeben zum Schalten von 220V? Kannst Du dazu etwas scheiben? Beim Relaisboard hattest Du ja die maximal zu schaltende Spannung mit (glaube ich) 65V angegeben - aber wohl eher aus rechtlichen Gruenden.

Gruss Dirk

Frank
08.10.2006, 01:29
Hi Dirk,

ja so ist es in etwa. Ich denke das schalten von 220V würde technisch vermutlich kein Problem darstellen wegen des goßen Leiterbahnabstandes und der Relais-Eignung (siehe Bild), aber aufgrund der Gefählichkeit von Netzspannung wird dieses bei keiner Bauanleitung empfohlen und immer wesentlich niedrigere Spannungen als Grenzwert genannt. Ich rate immer vom Experimentieren mit Netzspannung ab und übernehme in der Hinsicht auch keinerlei Garantie / Verantwortung. Du verstehst sicher was ich meine (siehe Hinweise).

Gruß Frank




:strom :gesetz

Leiterbahnen um das Relais (rot / blau / pink = Leiterbahnen/Kupfer schwarz=freie Fläche)

http://www.shop.robotikhardware.de/shop/catalog/images/artikelbilder/rnsteuerung/relaisleiterbahnen.gif


https://www.roboternetz.de/bilder/haftungshinweis.gif

Millenniumpilot
08.10.2006, 10:09
Hallo Frank,

ich bin mir sicher, ich habe Dich verstanden ;-)
Vielen Dank fuer den Leiterplattenausschnitt.

Gruss Dirk