loetstelle.net
Lötstelle Userforum
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Digitale Lösung für Schaltungen / Problem?
Gehe zu Seite Zurück  1, 2, 3 ... 12, 13, 14 ... 18, 19, 20  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    loetstelle.net Foren-Übersicht -> Microcontroller und DSP
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
IE04



Anmeldungsdatum: 19.09.2007
Beiträge: 43

BeitragVerfasst am: So 20.Jul 2008 15:53:40    Titel: Bauteile finden Antworten mit Zitat

Hi Gerold!
Ich bin nun auch auf deinen Bascom-Kurs gestoßen und bin begeistert!
Ich suche schon lange nach einem Praxisbeispiel für eine Software-PWM aber finde nichts derartiges. Könnte man zu deiner bisherigen gelungen Sammlung eventuell auch ein Beispiel dafür mit einbringen?

Gruss Jens
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: So 20.Jul 2008 16:25:06    Titel: Bauteile finden Antworten mit Zitat

IE04 hat folgendes geschrieben:
Ich suche schon lange nach einem Praxisbeispiel für eine Software-PWM

Hallo Jens!

Die Beispiele für Software-PWM sind in den Beiträgen dieses Threads versteckt:
http://www.elektronik-projekt.de/thread.php?threadid=4866

Software-PWM werde ich ziemlich bald auch hier im Kurs durchnehmen. Zuerst kommen aber noch die Timer/Counter.

mfg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
eXo|Kickerxy



Anmeldungsdatum: 18.06.2008
Beiträge: 19

BeitragVerfasst am: Fr 01.Aug 2008 15:46:46    Titel: Bauteile finden Antworten mit Zitat

Ich bins mal wieder ;=)

ich bin fleißig am basteln und bestellen ^^

LCD kommt nächste woche an, dann les ich mir dein tut dazu ncohmal durch Smile
Aber im moment hab ich nur diese 7-Segment(+Punkt)-Anzeigen von Kingsbright.
So. Die funktionieren ja auch super, nur mit der Kombi mit dem µC haperts:
(die Anzeige hat einen gemeinsamen + Anschluss)
Problem: um die einzelnen Segmente zum leuchten zu bringen, braucht er jeweils ein Strommrückfluss(-), der über den µC realisiert werden soll.
dazu mein Quelltext;
Code:
$regfile = "M8def.dat"
$crystal = 1000000
$hwstack = 32
$swstack = 10
$framesize = 40
$baud = 4800
Ddrb = &B00000010       '0 = Eingang
Ddrd = &B11111111
Portd.0 = 1       'a
Portd.1 = 1       'b
Portd.2 = 1       'c
Portd.3 = 1       'd
Portd.4 = 1       'e
Portd.5 = 1       'f
Portd.6 = 1       'g
Portd.7 = 1       'DP
Portb.1 = 1       'LED(gehört nciht zum 7-Segment')

Declare Sub Dig(byval Zahl As Byte , Byval Punkt As Byte)

Do

    Call Dig(0 , 0) 'Er soll eine Null ohne Punkt darstellen

  Wait 10
   Gosub Del_dig

 Waitms 500
Loop
End



Sub Dig(byval Zahl As Byte , Byval Punkt As Byte)

Select Case Zahl

Case 0 :

Portd.0 = 0
 Portd.1 = 0
  Portd.2 = 0
   Portd.3 = 0
    Portd.4 = 0
     Portd.5 = 0       'a+b+c+d+e+f


Case 1 :

Portd.4 = 0
 Portd.5 = 0       'e+f

Case 2 :

Portd.0 = 0
 Portd.1 = 0
  Portd.3 = 0
   Portd.4 = 0
    Portd.6 = 0       'a+b+d+e+g

'UND SO WEITER

End Select


End Sub



 Del_dig:

Portd.0 = 1
Portd.1 = 1
Portd.2 = 1
Portd.3 = 1
Portd.4 = 1
Portd.5 = 1
Portd.6 = 1
Portd.7 = 1

Return

hm nur komischerweise liegt an den Ports laut meinem billigmessteil Laughing immer ein HIGH an Question
(und das Segment leuchtet ja auch nicht)

Ok, wenns sorum nicht geht, müsste ich eben Transistoren verwenden(umständlich), aber das Signal am Port müsste ja trotzdem LOW machbar sein^^

Was mich auch wundert: bei der SUBprozedur wollte ich eigentlich beim 2.Parameter BIT statt BYTE nehmen. Er sagt mir aber dann , ich wäre out of range, obwohl ich 0 übergebe (hab auch schon versucht n bit zu übergeben, geht auch nicht=?)

so far Wink
lg
eXo

#edit: mir fällt grade der Schlüssel oben auf.. muss vllt ddrd =0000000? Sind ja im Prinzip Eingänge? Und: Ist es eigentlich egal wieviele 0000000 und 1111111 ich in dem Schlüssel verwende? die D Ports sind ja mehr als Die Bs usw.?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Fr 01.Aug 2008 16:19:40    Titel: Bauteile finden Antworten mit Zitat

eXo|Kickerxy hat folgendes geschrieben:
hm nur komischerweise liegt an den Ports laut meinem billigmessteil Laughing immer ein HIGH an Question
(und das Segment leuchtet ja auch nicht)

Hallo eXo!

Nachdem ich den Code so formatiert hatte, dass man etwas erkennen konnte, konnte ich (auf die Schnelle) keinen Fehler feststellen. Hier der formatierte Code:
Code:
$regfile = "M8def.dat"
$crystal = 1000000
$hwstack = 32
$swstack = 10
$framesize = 40
$baud = 4800

Ddrb = &B00000010       '0 = Eingang
Ddrd = &B11111111

Portd.0 = 1       'a
Portd.1 = 1       'b
Portd.2 = 1       'c
Portd.3 = 1       'd
Portd.4 = 1       'e
Portd.5 = 1       'f
Portd.6 = 1       'g
Portd.7 = 1       'DP
Portb.1 = 1       'LED(gehört nciht zum 7-Segment')

Declare Sub Dig(byval Zahl As Byte , Byval Punkt As Byte)


Do
   Call Dig(0 , 0)       'Er soll eine Null ohne Punkt darstellen
   Wait 10
   Gosub Del_dig
   Waitms 500
Loop

End


Sub Dig(byval Zahl As Byte , Byval Punkt As Byte)
   Select Case Zahl
   Case 0
      Portd.0 = 0
      Portd.1 = 0
      Portd.2 = 0
      Portd.3 = 0
      Portd.4 = 0
      Portd.5 = 0       'a+b+c+d+e+f
   Case 1
      Portd.4 = 0
      Portd.5 = 0       'e+f
   Case 2
      Portd.0 = 0
      Portd.1 = 0
      Portd.3 = 0
      Portd.4 = 0
      Portd.6 = 0       'a+b+d+e+g
   End Select
End Sub


Del_dig:
   Portd.0 = 1
   Portd.1 = 1
   Portd.2 = 1
   Portd.3 = 1
   Portd.4 = 1
   Portd.5 = 1
   Portd.6 = 1
   Portd.7 = 1
Return

Entferne doch mal alles was am PortD dranhängt und messe, wenn nichts angeschlossen ist, noch einmal.

mfg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
eXo|Kickerxy



Anmeldungsdatum: 18.06.2008
Beiträge: 19

BeitragVerfasst am: Sa 02.Aug 2008 10:41:34    Titel: Bauteile finden Antworten mit Zitat

hm also sehr seltsam... die anderen PortDs gehen, nur Portd.0,portd.1 und portd.2 nicht Question ich kann natürlich die restlichen jetzt einfach an B hängen, aber interessieren würde es mich ja schon Question
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Sa 02.Aug 2008 11:23:00    Titel: Bauteile finden Antworten mit Zitat

eXo|Kickerxy hat folgendes geschrieben:
hm also sehr seltsam... die anderen PortDs gehen, nur Portd.0,portd.1 und portd.2 nicht Confused:liegt es doch an dem register? ichkann natürlich die restlichen jetzteinfach an B hängen, aber interessieren würde es mich ja schon Question

Hallo eXo!

PD0 und PD1 könnte ich noch verstehen. Diese beiden Pins sind mit den Funktionen RXD und TXD belegt. Sobald ``$baud`` im Programm verwendet wird, ist die UART an diesen beiden Pins aktiv. Aber warum PD2 auch nicht funktionieren soll, weiß ich nicht.

Versuche mal ``$baud`` aus dem Programm raus zu nehmen.

EDIT:

Dieses kleine Testprogramm schaltet alle Pins des Ports D ein:
Code:
$regfile = "M8def.dat"
$crystal = 1000000
$hwstack = 32
$swstack = 10
$framesize = 40
'$baud = 4800

Ddrd = &B11111111

Portd.0 = 1
Portd.1 = 1
Portd.2 = 1
Portd.3 = 1
Portd.4 = 1
Portd.5 = 1
Portd.6 = 1
Portd.7 = 1

End

Und wenn man ``$baud`` mit drinnen lässt, dann wird der Pin PD0 nicht eingeschaltet, da an diesem Pin auf UART-Nachrichten gehorcht wird. Aber PD1 lässt sich weiterhin ein- und ausschalten.

mfg
Gerold
Smile

PS: Die einzelnen (acht) Ein-/Ausgänge eines Ports nennt man Pins. Smile

.

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
eXo|Kickerxy



Anmeldungsdatum: 18.06.2008
Beiträge: 19

BeitragVerfasst am: Sa 02.Aug 2008 12:05:37    Titel: Bauteile finden Antworten mit Zitat

eehm ja... pin d2 war einfach n bissl locker Embarassed
ach ja.. wenn ich dich nicht hätte Wink
Jetzt geht alles, danke Smile
Deine tuts sind echt super!

lg
eXo
ps: ich meld mich, wenn Probleme mit dem LCD, den ich gestern bestellt habe, auftreten Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Mi 13.Aug 2008 22:20:26    Titel: Timer0 als Counter Bauteile finden Antworten mit Zitat

Hallo!

Im letzten Beitrag habe ich dir den Timer0 als Timer vorgestellt. In diesem Beitrag geht es darum, den Timer0 als Counter einzusetzen. Als Counter kann man den Timer0 dazu verwenden, externe Ereignisse zu zählen. Auch hier kann man wieder nach einem Überlauf den OVF0-Interrupt auslösen lassen. Allerdings kann man, wenn man den Timer0 als Counter verwendet, keinen Prescaler vorschalten.

Als Eingangspin kann nur der T0-Pin (PD4) verwendet werden. Dafür hat man den Vorteil, dass man auf Flanken reagieren kann. Man kann auswählen, ob der Timer bei steigender oder bei fallender Flanke zählen soll.

Üblicherweise zählt man schnelle, digitale Ereignisse und nicht das Drücken eines Tasters. Das wäre Ressourcenverschwendung. Das Drücken eines Tasters ist so langsam, dass man dafür lieber den Befehl DEBOUNCE verwenden sollte. Der Vorteil des Counters ist, dass der Zählvorgang den Programmablauf nicht beeinflusst. Noch ein Vorteil ist, dass man den µC schlafen legen kann, während der Counter im Hintergrund unbeeinflusst weiterzählt. Ein OVF0-Interrupt weckt den µC zum Arbeiten kurz wieder auf und danach kann er wieder schlafen gelegt werden. In so einem Fall ist das Zählen von "langsamen" Ereignissen mit dem Timer0 natürlich keine Ressourcenverschwendung sondern überlegtes Handeln. Wink

Ich muss zugeben, dass ich mir ziemlich schwer tue, ein gutes Beispiel für den Counter zu finden. Nehmen wir mal an, ich möchte einen Tastendruck zählen. Dann würde ich das mit DEBOUNCE erledigen. Und wenn ich einfach zur zählen möchte, wie oft ein Ereignis auftritt, dann kann ich das über einen Interrupt (INT0 oder INT1) wunderbar erledigen. Dafür brauche ich den Counter nicht.

Der Counter wird oft erst dann interessant, wenn ein sehr schnelles Ereignis gezählt werden soll. Etwas, was das Hauptprogramm ständig unterbrechen bzw. aufhalten würde. Man kann mit dem Counter Ereignisse zählen, die bis zu ``Systemtakt / 2,5`` schnell sind. Wenn der Systemtakt auf 1 Mhz eingestellt ist, dann kann der Counter maximal 400.000 Ereignisse die Sekunde zählen. Ereignisse mit höheren Frequenzen würden verloren gehen. Das Erkennen einer Flanke braucht in etwa 2,5 bis 3,5 Systemticks. Wenn man den ATmega8 voll ausrüstet und mit einem 16 MHz Quarz versieht, dann können in der Sekunde bis zu 6,4 Millionen Ereignisse gezählt werden.

In den folgenden Beispielen handelt es sich nicht um Beispiele aus der realen Welt, sondern um Beispiele die man selber nachbauen und ausprobieren kann. Ich dachte mir, dass man so den Counter und dessen Möglichkeiten besser verstehen kann. Denn je besser man die Möglichkeiten des µC kennen lernt, desto vielseitiger lässt er sich einsetzen. Außerdem habe ich darauf geachtet, auch ein paar Dinge die bereits gezeigt wurden in den Beispielen zu üben. Und wie immer ist die BASCOM-Hilfe der erste Anlaufpunkt, wenn man einen Befehl nicht kennt. Und ja, mir ist klar, dass man manches auch anders lösen könnte. Aber hier geht es um den Timer0 als Counter. Smile


===========================
Counter0 als Frequenzteiler
===========================

Eine recht nützliche Sache ist, dass man nicht auf jedes Ereignis reagieren muss. Man kann den Counter eine gewisse Menge an Ereignissen zählen lassen und z.B. nur auf jedes hundertste Ereigniss reagieren. Das entlastet den µC bei hohen Frequenzen enorm. Als Counter kann man den Timer0, genau so wie als Timer, nach 256 Ticks überlaufen lassen. Und dabei kann der OVF0-Interrupt ausgelöst werden. Und wenn man den Timer0 vorher z.B. auf 156 stellt, dann wird der OVF0-Interrupt (alias TIMER0) nach exakt 100 Zählereignissen ausgelöst. So kann der Timer0 z.B. zum Teilen von Frequenzen verwendet werden. Wenn man die Eingangsfrequenz zum Beispiel durch 100 teilen und an einem Ausgangspin zur Verfügung stellen möchte, dann wird dafür das Hauptprogramm des Mikrocontrollers nur alle 50 Zählereignisse unterbrochen um den Ausgangspin zu toggeln. Man kann sich sicher vorstellen, dass so etwas bei einer Eingangsfrequenz von angenommen 1 Mhz, das Hauptprogramm merkbar entlastet.



Code:
$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 100
$swstack = 100
$framesize = 100

'Diese Konstante gibt an, nach wievielen Zählereignissen der Counter überlaufen soll.
'   Presetvalue = gewünschter Teiler / 2
'Bei 1 würde die Frequenz halbiert werden. Bei 2 würde die Frequenz geviertelt
'werten. Und bei 50 wäre am Ausgang immer ein Hundertstel der Eingangsfrequenz.
'   1/2 = 1
'   1/4 = 2
'   1/6 = 3
'   1/100 = 50
'   1/512 = 256
Const Presetvalue = 1

'Eingang
Config Pind.4 = Input       '=T0

'Ausgang
Config Portc.0 = Output

'Timer0/Counter0 einstellen und Überlauf-Interrupt aktivieren
Config Timer0 = Counter , Edge = Rising
On Timer0 On_timer0

Load Timer0 , Presetvalue

Enable Timer0
Enable Interrupts


Do
   !nop
Loop

END


'Wenn dieser Interrupt-Handler aufgerufen wird, dann wird zuerst der
'Wert des Timer0 so weit hoch gesetzt, dass der Timer0/Counter0
'erst wieder nach nach <Presetvalue> Zählereignissen ausgelöst wird.
On_timer0:
   'Mit dem Befehl LOAD wird der Wert des Timer0 gesetzt.
   Load Timer0 , Presetvalue
   'Ausgangspin toggeln
   Toggle Portc.0
Return

So funktioniert das aber nur, wenn man ein schönes Eingangssignal hat. Damit meine ich ein Signal, das bei LOW nach GND zieht und bei HIGH nach VCC. Ist das nicht der Fall, dann muss man mit einem PullUp- oder PullDown-Widerstand am Eingang für klare Verhältnisse sorgen (je schneller das Signal, desto kleiner muss der Widerstand sein).

Wenn man dieses Beispiel mit einem Taster ausprobieren möchte, dann muss man bedenken, dass ein Taster prellt. In so einem Fall empfehle ich, den Eingang mit einem Kondensator zu entprellen, den Taster gegen GND schalten zu lassen und den eingebauten PullUp-Widerstand des Pins zu aktivieren.



Code:
$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 100
$swstack = 100
$framesize = 100


'Diese Konstante gibt an, nach wievielen Zählereignissen der Counter überlaufen soll.
'   Presetvalue = gewünschter Teiler / 2
'Bei 1 würde die Frequenz halbiert werden. Bei 2 würde die Frequenz geviertelt
'werten. Und bei 50 wäre am Ausgang immer ein Hundertstel der Eingangsfrequenz.
'   1/2 = 1
'   1/4 = 2
'   1/6 = 3
'   1/100 = 50
'   1/512 = 256
Const Presetvalue = 1

'Eingang
Config Pind.4 = Input       '=T0
Portd.4 = 1       'Pullup-Widerstand aktivieren
'kurz warten, um dem Entprellkondensator des Tasters genug Zeit zum Laden zu geben
Waitms 1

'Ausgang
Config Portc.0 = Output

'Timer0/Counter0 einstellen und Überlauf-Interrupt aktivieren
Config Timer0 = Counter , Edge = Falling
On Timer0 On_timer0

Load Timer0 , Presetvalue

Enable Timer0
Enable Interrupts


Do
   !nop
Loop

END


'Wenn dieser Interrupt-Handler aufgerufen wird, dann wird zuerst der
'Wert des Timer0 so weit hoch gesetzt, dass der Timer0/Counter0
'erst wieder nach nach <Presetvalue> Zählereignissen ausgelöst wird.
On_timer0:
   'Mit dem Befehl LOAD wird der Wert des Timer0 gesetzt.
   Load Timer0 , Presetvalue
   'Ausgangspin toggeln
   Toggle Portc.0
Return

Da der Taster nach GND zieht wenn er gedrückt wird, habe ich im Code den Timer0 so eingestellt, dass dieser bei "fallender" Flanke zählt.


===========================================
Zählen von (schnellen) externen Ereignissen
===========================================

Abschließend möchte ich noch mit einem Beispiel zeigen, wie der Counter den µC beim Zählen von schnellen Ereignissen entlasten kann. Damit man es nachvollziehen kann, bleibe ich bei der Schaltung mit dem Taster (PullUp; Taster nach GND). Um den gezählten Wert anzeigen zu können, schicke ich ihn über die UART zum Computer. Und damit man sieht wieviele Ereignisse in den letzten fünf Sekunden gezählt wurden, wird dieser Wert auch noch ermittelt und in Klammern mit angezeigt.



Code:
$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 100
$swstack = 100
$framesize = 100
$baud = 4800

'Diese Konstante gibt an, nach wievielen Zählereignissen der Counter überlaufen soll.
'Gibt man hier ``1`` an, dann wird jedes Ereignis angezeigt. Gibt man hier ``10`` an,
'dann wird zwar jedes Ereignis gezählt, aber nur jedes 10. Ereignis führt dazu, dass
'es in den angezeigten Wert (counted_value) übernommen wird.
Const Interval = 10

'Eingang
Config Pind.4 = Input       '=T0
Portd.4 = 1       'Pullup-Widerstand aktivieren

'Ausgang
Config Portc.0 = Output

'Zählervariable
Dim Counted_value As Long       'LONG: bis 2147483647
Dim Counted_value_saved As Long
Dim Delta As Long

'Timer0/Counter0 einstellen und Überlauf-Interrupt aktivieren
Config Timer0 = Counter , Edge = Falling
On Timer0 On_timer0

Load Timer0 , Interval

Enable Timer0
Enable Interrupts


Do
   'Mit ``DISABLE INTERRUTPS`` wird sichergestellt, dass kein Interrupt-Handler
   'den Wert der Variable COUNTED_VALUE verändert, während damit gerechnet wird.
   Disable Interrupts

   'herausfinden, wieviele Zählereignisse seit der letzten Berechnung auftraten
   'und den neuen Zählstand sichern
   Delta = Counted_value - Counted_value_saved
   Counted_value_saved = Counted_value

   'Der Befehl ``ENABLE INTERRUPTS`` gibt die Interruptroutinen wieder frei.
   'Sollte in der Zwischenzeit ein Interrupt ausgelöst worden sein, wird dieser
   'Interrupt jetzt nachgeholt.
   Enable Interrupts

   Print Counted_value_saved ; " (" ; Delta ; ")"

   Wait 5
Loop

END


On_timer0:
   'Mit dem Befehl LOAD wird der Wert des Timer0 gesetzt, damit der Timer
   'nach <Interval> Zählereignissen wieder überläuft.
   Load Timer0 , Interval

   'Zählervariable um <Interval> erhöhen
   Counted_value = Counted_value + Interval
Return

Je höher man den Wert der Konstante ``Interval`` einstellt (1-256), desto mehr wird der µC entlastet.


Und abschließend möchte ich noch betonen, dass es sich hier nur um Beispiele handelt, die die Arbeit mit dem Counter verdeutlichen sollen. Natürlich wäre es super, wenn du die Beispiele selbst nachbaust und nachvollziehen kannst. Die "Best Praxis"-Lösung gibt es nicht. Jedes Problem kann auf verschiedene Arten gelöst werden. Der Counter ist eine davon.


lg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Fuzzy



Anmeldungsdatum: 11.03.2008
Beiträge: 7

BeitragVerfasst am: Fr 29.Aug 2008 15:26:01    Titel: Daten per Funk übertragen Bauteile finden Antworten mit Zitat

Hallo,

bei dem Kurs bleiben ja schon fast keine Wünsche mehr offen aber ich hätte noch einen Wink . Ich hab vor im Herbst, wenn's draussen ungemühtlich wird, eine (erstmal) kleine Wetterstation zu bauen. Ich weiss die gibt's wie Sand am Meer aber leider nur sehr wenige mit LED Anzeige und die Werte werden teilweise nicht schnell genug aktualisiert. Was meine Wetterstation erstmal können sollte wäre 2 Temperaturen, Luftdruck und Windgeschwindigkeit messen. Die Windgeschwindigkeit möchte ich möglichts in Echtzeit bekommen weil das viel aussagekräftiger ist als wenn alle Minute mal gemessen wird und da vielleicht gerade Windstille herrscht. Da die Sensoren ja draussen platziert werden sollen und die Anzeige im warmen Wohnzimmer ihren Platz haben soll, sollten die Messwerte per Funk übermittelt werden. Welche Möglichkeiten gibt's hierfür? Hab gesehen, dass es bei Polin ein "Funkboard" gibt, aber wie läuft dass dann in der Praxis ab. Schieb ich den Messwert in ein Register oder Variable und gibt's dann ein Befahl send um den Wert an die Anzeigeeinheit zu übermitteln ???

Hat vielleicht jemand schon was ähnliches gemacht der mir auf die Sprünge helfen kann?

Danke schon mal Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Fr 29.Aug 2008 16:01:18    Titel: Re: Daten per Funk übertragen Bauteile finden Antworten mit Zitat

Fuzzy hat folgendes geschrieben:
die Messwerte per Funk übermittelt werden. Welche Möglichkeiten gibt's hierfür

Hallo Fuzzy!

Ich kenne im Moment nur zwei praktische Lösungen:
ZigBee:
- http://de.wikipedia.org/wiki/ZigBee
- http://www.roboter-teile.de/Shop/themes/kategorie/detail.php?artikelid=92&source=2
- http://www.roboter-teile.de/Shop/themes/kategorie/detail.php?artikelid=114&source=2
- http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=41825&highlight=zigbee
- http://shop.strato.de/epages/61427429.sf/de_DE/?ObjectPath=/Shops/61427429/Categories/ZigBee/%22ZigBee%20Module%22
- http://www.mikrocontroller.net/topic/62112

RFM-Module von Pollin:
- http://www.pollin.de/shop/shop.php?cf=detail.php&pg=NQ==&a=MjU5OTgxOTk=
- http://www.pollin.de/shop/shop.php?cf=detail.php&pg=NQ==&a=MTU5OTgxOTk=
- http://www.pollin.de/shop/shop.php?cf=detail.php&pg=NQ==&a=MDU5OTgxOTk=
- http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=40079&highlight=rfm
- http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=38947&highlight=rfm
- http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=36453&highlight=rfm
- http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=29202&highlight=rfm
- http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=35939&highlight=rfm
- http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=34106&highlight=rfm
- http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=30824&highlight=rfm
- http://www.mikrocontroller.net/topic/67273

Praktisch habe ich aber mit beiden noch nichts gemacht.

mfg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Bauteiltöter



Anmeldungsdatum: 10.03.2008
Beiträge: 172

BeitragVerfasst am: Fr 29.Aug 2008 17:24:22    Titel: Bauteile finden Antworten mit Zitat

Hi,

Ich Post meine Frage einfach mal hier, dafür einen neuen Thread aufzumachen erscheint mir ein bisschen unnötig.

Wie kann ich die Fusebits mit BASCOM setzten, bzw. geht das überhaupt? Es geht mir nur um das JTAG-Fuse. Oder wie stelle ich den Parallelportprogrammer bei MyAVRWorkpad Plus ein? ich finde die Option nicht, es funktioniert nicht Evil or Very Mad

MfG Bauteiltöter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Fr 29.Aug 2008 18:47:20    Titel: Bauteile finden Antworten mit Zitat

Bauteiltöter hat folgendes geschrieben:
Wie kann ich die Fusebits mit BASCOM setzten

Hallo Bauteiltöter!

Im Bascom musst du in den Einstellungen (Optionen - Programmer) den "STK200/STK300" einstellen.

Dann musst du ein Programm öffnen oder ein neues Programm erstellen. Dann kannst du über das Menü Programmieren - Zum Chip Senden> - Manuell Programmieren das Fenster "AVR ISP STK programmer" öffnen.

In diesem Fenster klickst du auf den Tab "Lock and Fuse Bits".

Nach dem Einstellen der Fuse-Bits schreibst du diese mit den Buttons "Write LB", "Write FS", "Write FSH" und "Write FSE" in den Mikrocontroller. Danach musst du den Strom vom µC nehmen. Erst dann werden die Einstellungen übernommen.

mfg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Bauteiltöter



Anmeldungsdatum: 10.03.2008
Beiträge: 172

BeitragVerfasst am: Fr 29.Aug 2008 18:57:59    Titel: Bauteile finden Antworten mit Zitat

Vielen Dank!
Als einstellung für den Parallelport-Programmer benutze ich die Einstellung Universal MCS Interface --> WinAVR and SP12.

MfG Bauteiltöter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Fr 29.Aug 2008 19:20:57    Titel: Bauteile finden Antworten mit Zitat

Bauteiltöter hat folgendes geschrieben:
Als einstellung für den Parallelport-Programmer benutze ich die Einstellung Universal MCS Interface --> WinAVR and SP12.

Hallo Bauteiltöter!

Ich habe fälschlicherweise angenommen, dass du einen STK200 hast. http://halvar.at/elektronik/kleiner_bascom_avr_kurs/stk200_programmer/

mfg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Sa 30.Aug 2008 14:33:15    Titel: Bauteile finden Antworten mit Zitat

Hallo Fuzzy!

Hier habe ich noch ein paar Links für dich:
- http://www.cczwei-forum.de/cc2/thread.php?threadid=1818
- http://www.robotfreak.de/blog/mikrocontroller/preiswerte-bluetooth-anbindung/44
- http://www.plischka.at/AVR_Projekte.html

EDIT:

Und noch zwei Links:
- http://www.active-robots.com/products/radio-solutions/radio-modules.shtml
- http://www.active-robots.com/products/radio-solutions/radio-communication.shtml

EDIT:

Und noch ein interessanter Link:
http://www.linxtechnologies.com/Products/RF-Modules/

mfg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.


Zuletzt bearbeitet von gerold am Do 04.Sep 2008 11:02:30, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Anzeige






Verfasst am: Heute 00:39:47    Titel: Bauteile finden

Nach oben
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    loetstelle.net Foren-Übersicht -> Microcontroller und DSP Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3 ... 12, 13, 14 ... 18, 19, 20  Weiter
Seite 13 von 20

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum nicht herunterladen


Powered by phpBB 2.x © 2001, 2002 phpBB Group

Sie sind Besucher Nr. 1201744
©opyright by Markus Vohburger 2005 All Rights reserved