Ich habe folgende Fragen: Ich hoffe man kann mir ein wenig helfen. Als
Controller möchte ich vermutlich den AT-Mega 8 nehmen. Als Display soll
ein Display mit 20x4 Zeichen sein.
- Wie kann man am einfachsten mit einem µC Spannung messen, im Bereich
bis 15V?
- Muss ich bei mehren Servos am µC über einen Transistor schalten, also
um den Controller nicht zu überfordern?
- Hat jemand schon mal eine Menüsteuerung über einen µController
realisiert und kann mir jemand vielleicht helfen bei einem einstieg?
- Gibt es eine Maximallänge für 1-Wire Bus? Also sind bis 50m Länge kein
Problem?
- Gibt es eine Maximallänge für den ISP - Anschluß bzw. den RS232
Anschluß? Kann man dort auch mit etwa 50m Länge arbeiten oder ist dieses
zu lang?
Michael
@Tim (Gast)
>Ich habe folgende Fragen: Ich hoffe man kann mir ein wenig helfen. Als>Controller möchte ich vermutlich den AT-Mega 8 nehmen. Als Display soll>ein Display mit 20x4 Zeichen sein.>- Wie kann man am einfachsten mit einem µC Spannung messen, im Bereich>bis 15V?
Mit einem Spannungsteiler>- Muss ich bei mehren Servos am µC über einen Transistor schalten, also>um den Controller nicht zu überfordern?
Nein. Das Steuersignal braucht nicht viel Strom.
>- Hat jemand schon mal eine Menüsteuerung über einen µController
Ja.
>realisiert und kann mir jemand vielleicht helfen bei einem einstieg?
Schau dir ein paar Beipspiele an.
>- Gibt es eine Maximallänge für 1-Wire Bus?
Ja, so um die 1m.
> Also sind bis 50m Länge kein Problem?
Wenn gleich es funktioniert, ist der 1-Wire Bus dafür nicht erfunden
worden.
>- Gibt es eine Maximallänge für den ISP - Anschluß bzw. den RS232
Das sind zwei grundverschiedene Sachen. ISP ist meist sinnvollerweise
auf 1-5m beschränkt, RS232 kann durchaus 100m überbrücken.
Falk Brunner schrieb:>>- Gibt es eine Maximallänge für den ISP - Anschluß bzw. den RS232>> Das sind zwei grundverschiedene Sachen. ISP ist meist sinnvollerweise> auf 1-5m beschränkt, RS232 kann durchaus 100m überbrücken.
Kommt dabei aber auch auf die Kabelart und die Übertragungsrate an.
Wikipedia sagt dazu:
2.400 900 m
4.800 300 m
9.600 152 m
19.200 15 m
57.600 5 m
115.200 <2 m
http://de.wikipedia.org/wiki/RS232
Wo gibt es den Beispiele für die Sache mit der Menüsteuerung? Gibt es
hier im Forum ein Bereich für sowas?
Und das max 1m Länge bei einem 1-Wire Bus wäre irgendwie doof. Weil ich
möchte meine Wohnung per Netzwerkkabel duchverbinden und in jedem Raum
ein Temp. Sensor zwischen packen. Also das ich die Temperatur für jeden
Raum zentral abfragen kann und so würde eine Längere Kabellänge zusammen
kommen.
Tim
oder bau dir eine Platine, die den Senor und einen µC hat. Dieser sendet
dann auf einem Bus mit geeigneten Protokol, so das er auch größere
Strecken überwindet. Irgend ein Master µC ämpfängt dann dessen Daten und
verarbeitet sie. Nur wird dann die Platine mit Sensor auch versorgt
werden müßen, entweder über ein Steckernetzteil oder einer Leitung die
neben der Daten(bus)leitung veräuft.
Der PIC12F1840 () wäre z.B. passend (andere bestimmt auch, es soll kein
Krieg ausbrechen). Der hat an Pin 2+3 TX/RX, also RS232/RS485/LIN und du
hast noch andere PINs frei für einen One-Wire-Sensor. Wenn du aber noch
etwas variable bist, was den Sensor angeht.. Es gibt vielleicht auch
einen Sensor mit I²C oder SPI, den könntest du dann an Pin 5+6 bzw. Pin
5+6+7 anschließen und kannst das SSP Modul benutzen. Das One-Wire
müsstest du dann Softwaretechnisch lösen. Machbar aber I²C/SPI wäre
sicher einfacher
> Wie kann man am einfachsten mit einem µC Spannung messen,> im Bereich bis 15V?
In dem man die Spannung mit einem Spannungsteiler durch 6 teilt,
also z.B. 50k und 10k, und dann von 0V bis 2.5V gegen die interne
Referenzspannung des ATmega8 misst.
> - Muss ich bei mehren Servos am µC über einen Transistor schalten,> also um den Controller nicht zu überfordern?
Nein, der Indeximpuls darf direkt an den Servo gehen, da aber
Servos Motoren sind die die Versorgungspsananung extrem verbauen,
muß man auf perfekte Spannungsversorgung achten. am besten die
Spannugn des AVR aus einer anderen Batteri nehmen als die der
Servos, doer zumindest einem eigenen Spannungsregler, und nur
an einem Punkt (Masseanschluss) verbinden.
> - Hat jemand schon mal eine Menüsteuerung über einen µController> realisiert und kann mir jemand vielleicht helfen bei einem einstieg?
Das ist doch sehr einfach. Du hast ein Display. Du brauchst nun
noch Tasten, 3 oder 4. Dann kanst du ein Programm das immer in
einer Schleife läuft, z.B. in 25msec ein mal rum (für die Servos..)
Dort kannst du die Tastenerkennung einbauen und bei jedem
Tastendruck die Anzeige weiterschalten. In 'C':
uint8_t tasten,gedrueckt,position,menu;
position=0; // Grundstellung
menu=0; // Hauptmenü
for(;;) // Programmhauptschleife
{
tasten=PIND; // Bis zu 8 Taster auf ein mal, liefern 1 wenn gedrückt
gedrueckt=tasten&~gedrueckt;
if(gedrueckt&1) // Taste '+', nächste Menüoption
{
position=(position+1)%10; // ggf. Maximalwert prüfen
}
if(gedrueckt&2) // Taste '-', vorherigee Menüoption
{
position=(position+9)%10; // gff. Maximalwert prüfen
}
if(gedrückt&4) // Taste 'Ok', Menüaktion
{
menu=aktion[menu][position]; // Tabelle sagt was zu tun ist
position=0;
}
// ausgabe auf LCD: aktuelle Menü, aktuelle Position
// mach was sonst in der Programm-Hauptschleife passieren muß
gedrueckt=tasten;
_delay_ms(25); // damit sie bestimmt länger dauert als Prellen
}
> - Gibt es eine Maximallänge für 1-Wire Bus? Also sind bis 50m> Länge kein Problem?
Ein dickes Problem. Eher 1m.
> - Gibt es eine Maximallänge für den ISP - Anschluß ?> Kann man dort auch mit etwa 50m Länge arbeiten
Nein.
RS232: Ja.
zu lang?
Danke für eure Zahlreichen Tips und Co.
Als Programmiersprache würde ich gern bei Bascom bleiben. Hätte ich
vielleicht sagen sollen.
Und ich denke ich werde es mal Testen. Habe hier noch ein Ring mit
Netzwerkkabel liegen. werde dort mal paar Meter mehr abrollen und dann
an ein Ende den Temperatursensor DS18S20 dran packen und ans andere Ende
ein ATMega8 mit LC Display.
Und sonst müsste ich mir überlegen, wegen der Lösung mit Seperaten
Controller und Sensorplatinen.
Würde an sich was gegen ein Software Uart Schnittstelle Sprechen? Oder
sollte ich lieber eine Hardware Uart nehmen?
Und das mit dem Servo hatte mit der eigentlichen Aufgabe nix zu tun.
Diese Frage war eher allgemein.
Tim
Und ist es möglich, mehrere Module an eine Uart Schnittstelle zu packen?
Also das die Module eine ID Bekommen und sobald der Master die ID
sendet, erhält die Sensorplatine die ID und übermittelt Temperatur und
ID.
Wenn das mit der Software Uart geht, könnte ich für die Sensorplatinen
Attiny 13 nehmen.
Tim
> Und ist es möglich, mehrere Module an eine Uart Schnittstelle zu packen?
Offiziell ?
Nein.
Mit Aufwand ?
Ja, wenn man abschaltbare RS232 Sender verwendet,
und ein Protokoll fährt, daß nur einer davon zum
Senden eingeschaltet ist.
Ist es sinnvolle, eine Standardschnittstelle so
unstandardgemäss zu verwenden ?
Nein.
RS485 kann alles von Haus aus
http://www.rn-wissen.de/index.php/RS485
Vielleicht sollte ich noch zusätzlich die Information geben, ich will
insgesamt 9 bis 10 Temperatursensoren in diesem System Abfragen und über
einen LC Bildschirm an der MainUnit ausgeben lassen.
Tim
So habe es mal getestet mit einem Langem Kabel und leider kam überhaupt
nix. Ich habe verschiedenes getestet.
1. Pulldown Widerstand kurz hinterm Port vom 1-Wire Bus und dahinter
habe ich die Verbindungsleidung gehängt. Habe das Kabel nicht abgerollt,
hoffe das war kein Problem?
2. Diesmal habe ich den Pulldown-Widerstand direkt am DS18B20 gepackt.
Also Widerstand zwischen Datenleitung und Datenausgang vom
Temperaturchip. Den so klappte es als ich den Temperaturchip direkt an
den µC gepackt habe.
Der Widerstand hatte ein Wert von 10kOhm.
An sich wollte ich den Attiny 2313 als Controller Chip nutzen, aber
folgende Chip Family befindet sich in meinem Sortiement:
1 x Atmega 32
2 x Atmega 8
1 x Atmega 48
3 x Attiny 2313
1 x Attiny 85
1 x Attiny 44
2 x Attiny 13
Vielleicht eignet sich ein anderer Besser als Main Unit? Würde notfalls
auch noch ein anderen dazu holen, wenn der besser geeignet wäre.
Ich hoffe jemand kann mir da noch ein netten Tip geben. Wäre schon
klasse, wenn das System klappt.
Tim
Sry, eines habe ich vergessen zu sagen, es ist etwas Störend, wenn man
im Netz überall liest, 1Wire Bus wäre möglich 100-500m möglich ohne
Probleme.
Tim
@ Tim (Gast)
>1. Pulldown Widerstand kurz hinterm Port vom 1-Wire Bus und dahinter
Was nicht sonderlich sinnvoll ist, weil 1wire einen Pull UP braucht!
>habe ich die Verbindungsleidung gehängt. Habe das Kabel nicht abgerollt,>hoffe das war kein Problem?
Nein.
>Der Widerstand hatte ein Wert von 10kOhm.
ISt OK, kann man ich glaube bis auf 2 oder sogar 1k runtergehen.
>Vielleicht eignet sich ein anderer Besser als Main Unit?
Vollkommen egal.
>Ich hoffe jemand kann mir da noch ein netten Tip geben.
Teste es erstmal mit 1m Kabel. Wenn es läuft, nimm längere Kabel.