Hallo, ich bin blutiger Anfänger auf dem Gebiet der Mikrocontroller und möchte direkt mit einem , wie ich denke nicht ganz einfachem Projekt beginnen. Ich besitze das Pollin Evaluations Board, Atmega8,LCD Display, einen PC zum Programmieren und einige elektronische Bauteile. Ich möchte eine 5 Ton auswrtung nach dem ZVEI Standard durchführen und das Ergebnis auf einem LCD Display ausgeben, die Ausgabe auf dem Display habe ich bisher ignoriert, da ich erst einmal die 5 Ton Auswertung realisieren möchte. Als Grundlage verwende ich das Projekt von Martin Haun: http://home.arcor.de/output/elektronik/5ton-AVR.pdf Bis her habe ich dem ATmega8 programmiert und versucht ein NF-Signal "einzuleiten", mittels eines MP3 Players. Als Anzeige dient mir die LED auf dem Board, die an PD5 angeschlossen ist, den Quellcode in Bascom habe ich dann einfach geändert, von Portd.4 auf Portd.5. Jedoch, will die LED, nach dem Abspielen der 5 Ton folge einfach nicht leuchten.... Ich habe die Vermutung, das das NF Signal nicht erkannt wird, und kein Interrupt ausgelöst wird. Ich habe als Eingänge PAD3 (Masse) und PAD4 dafür benutzt. Ich habe jedoch keine Germaniumdiode genutzt, und die Schaltung auf dem Pollin Board betrieben und mittels 40Pol. Pfostenstecker auf ein Steckbrett geleitet. Kann ich denn so einfach den ATmega8 anstelle des von Martin verwendeten Mikrocontrollers benutzen ?
Der Quarz ist in deiner Schaltung falsch gepolt. Außerdem hat R17 am linken Beinchen einen Wackelkontakt. Und in Zeile 42 deines Programmcodes ist ein Schreibfehler.
Hallo, ich habe über den Schaltplan und das Programm nur schnell drüber geschaut. Folgendes ist mir aufgefallen: 1. In der Schaltung wird der Analog-Comperator verwendet. Das heißt, du darfst das Signal nicht an anderen Pins einspeißen, so wie du es beschrieben hast. Es müssen die Pins mit AIN0 und AIN1 sein!. 2. Es hat schon seinen Sinn, dass eine Germaniumdiode verwendet wird: Eine Siliziumdiode hat eine Schwellspannung von 0,7V, eine Germaniumdiode von 0,2V. Wenn dein Einganssignal also eine Amplitude von nur 0,7V hat, kommt durch die Siliziumdiode nichts durch. Zum probieren kannst du die Diode auch einfach mal weg lassen. Bitte zeichne für weitere Fragen auch einen Schaltplan und poste den Sourcecode. Damit kann man dir deutlich bessere Ratschläge geben. Sonst ist alles irgendwie geraten... Grüße, Florian
Hallo, > Kann ich denn so einfach den ATmega8 anstelle des von Martin verwendeten > Mikrocontrollers benutzen ? Hättest Du die von Dir verlinkte PDF-Datei komplett gelesen, so wäre die Antwort klar ... (siehe letzte Seite) Natürlich muss die andere Anschluss-Belegung des Mega8 berücksichtigt werden; dazu die Datenblätter der Controller zu Rate ziehen.
Danke für die schnellen Antworten, ich werde das die Tage ausprobieren und meine Ergebnisse einstellen, bin momentan im Prüfungsstress, sonnst würde ich mich schneller daran begeben. Einge Fragen hätte ich da aber noch: Wegstaben Verbuchsler schrieb das der Quarz falsch gepolt wäre, ich dachte Quarze wären nicht gepolt ?, wie erkenne ich den die richtige Polung. Und R17 hat einen Wackelkontakt, woher weiß er das ? und wo ist R17 ? es gibt doch nur 4 Widerstände in der Schalltung ? Und in Zeile 42 wäre ein Fehler "Frequlong = 8000000 / Icr_neu ".
Andre G. schrieb: > Wegstaben Verbuchsler schrieb das der Quarz falsch gepolt wäre, ich > dachte Quarze wären nicht gepolt ?, wie erkenne ich den die richtige > Polung. Damit wollte er Dich nur darauf hinweisen, dass man mit den von dir zur Verfügung gestellten Informationen eigentlich nur raten kann. Andre G. schrieb: > Kann ich denn so einfach den ATmega8 anstelle des von Martin verwendeten > Mikrocontrollers benutzen ? Nein. Du musst zumindest das Programm anpassen. Falls die beiden µC nicht zufällig pinkompatibel sind, auch noch die Schaltung.
Interessantes Projekt! Man könnte die Schaltung doch so abändern, das man eine 3-Ton-Folge bekommt. Also für nen Träger und jeweils eine für 0 und 1; So könnte man im AFU ein neuen TNC basteln um z.B. mit 100bps Daten davon zu schicken. Falls der AVR es packt die Tonfrequenzen so zu separieren, das man jedem Byte einen Ton zuordnen kann, wäre das sogar ein TCN der 8Bit auf einmal versenden kann (ich glaub Olivia ist so ein Prinzip)
Danke Chris, In wie fern muss ich das Programm denn anpassen, ich habe bis jetzt nur die regfile geändert, auf "m8def.dat" und das programm dann übertragen und die Schaltung entsprechend der Pin Bezeichnung geändert. Zur etwas näherern Erleuterung, die Tonfolge die zu einem "1" signal auf Portd.4 führt habe ich auf "12345" gesetzt und mithilfe eines 5Ton- generators eine mp3 Datei erstellt, welche die Folge beinhaltet, diese auf dem mp3 Player übertragen und getestet. Jedoch wird der Portd.4 anscheinend nicht auf "1" signal gesetzt. Ich warte bisher noch auf 2 Bauteile, momentan nutze ich den 8MHZ Quarz vom Board, welcher für den Attiny2313 ist, einfach 2Kabel in die IC halterung und auf ein Steckboard, in welchem dich auch der ATmega8 befindet.
Hier schonmal den Quelltext den ich benutze: $regfile = "m8def.dat" $crystal = 8000000 Ddrd = &B00010000 Config Timer1 = Timer , Prescale = 1 , Capture Edge = Rising , Noise Cancel = 1 Config Aci = On , Compare = On , Trigger = Rising On Icp1 Oncapture Enable Icp1 On Int0 Ontaster Config Int0 = Falling Enable Int0 Enable Interrupts Dim Zaehler As Word Dim Icr_neu As Word Dim Icr_alt As Word Dim Frequlong As Long Dim Frequenz As Word Dim A(5) As Word Dim Frequsumme As Word Dim Adizaehler As Integer Dim Durchschnitt As Word Dim Grenzeo As Word Dim Grenzeu As Word Dim Ton As String * 1 Dim Tonalt As String * 1 Dim Folge As String * 5 Dim Timeout As Word Main: Waitms 2 Frequlong = 8000000 / Icr_neu Icr_neu = 1 Frequenz = Frequlong Incr Timeout If Timeout > 40 Then Folge = "" Tonalt = "" Timeout = 0 End If A(5) = A(4) A(4) = A(3) A(3) = A(2) A(2) = A(1) A(1) = Frequenz Frequsumme = 0 For Adizaehler = 1 To 5 Frequsumme = Frequsumme + A(adizaehler) Next Durchschnitt = Frequsumme / 5 Grenzeo = A(1) + 10 Grenzeu = A(1) - 10 If Durchschnitt > Grenzeu And Durchschnitt < Grenzeo Then Select Case Durchschnitt Case 1050 To 1070 : Ton = "1" Case 1150 To 1170 : Ton = "2" Case 1260 To 1280 : Ton = "3" Case 1390 To 1410 : Ton = "4" Case 1520 To 1540 : Ton = "5" Case 1660 To 1680 : Ton = "6" Case 1820 To 1840 : Ton = "7" Case 1990 To 2010 : Ton = "8" Case 2190 To 2210 : Ton = "9" Case 2390 To 2410 : Ton = "0" Case 2590 To 2610 : Ton = "w" Case Else : Goto Main End Select Else : Goto Main End If If Ton = Tonalt Then Goto Main Tonalt = Ton Folge = Folge + Ton Timeout = 0 If Len(folge) = 5 Then Print Folge If Folge = "12345" Then Portd.4 = 1 End If Folge = "" End If Goto Main Ontaster: Return Oncapture: Zaehler = Timer1 Icr_neu = Zaehler - Icr_alt Icr_alt = Zaehler Return
So,Ich habe nun alle Bauteile erhalten, und die Schlatung exakt nach dem Vorbild in der pdf aufgebaut, das Netzteil stellt dabei das Pollin Evaluationsboard dar, die Schaltung ist auf einem Steckboard montiert, und die Eingänge , zB AIN0, habe ich mir anhand eines Belegungsplanes des ATMEGA8 Rausgesucht. Mir ist eine LED am AusgangPD4 kaputtgeganden, falscher Vorwiderstand, und nur aus Testzweck, also nicht mit dieser Software, ist der Port vielleicht kaputt?
Jetzt kann ich das gleiche wie Wegstaben Verbuchsler schreiben... Es gibt hier wohl niemand der Hellsehen kann. Also kann dir hier auch niemand sagen ob der Port nun kaputt ist oder nicht. Andere LED, anderer Vorwiderstand und nochmal probieren. Unter umständen hast du aber auch den AVR komplett zerstört, bei problemen einen anderen zu verwenden wird wohl nicht schaden. Komisch finde ich es aber schon, dass ausgerechnet die LED kaputt geht. Ich habe solche versuche auch schon gemacht ;) : Erst ist die LED sehr hell, dann wird sie schlagartig dunkel und glimmt dann nur noch so vor sich hin. Wenn das Gehäuse durchsichtig ist, dann sieht man sogar dass der Kristall schwarz ist. Aber dass der AVR so viel Strom schaltet hätte ich nicht gedacht. Was hast du denn für einen Widerstand verwendet???? Grüße, Florian
Ich benutze 470 Ohm, welcher normalerweise im "Rahmen liegt". Momentan benutze ich 2,2 kOhm, also wie in dem Schaltnetz, ich kann nur noch sagen, das es angefangen hat zu Richen und der Kristall Schwarz ist.
Also, ich habe die Schltung soweit, aufgebaut, nach dem Schema, wie in dem Bild, welches ich hochgeladen habe. Den Taster habe ich "rausgeworfen" und im Quellcode die Funktion "Ontaster" entfernt, es soll nur die LED angehen, wenn die richtige Folge erkannt wird. Einen anderen Atmega8 habe ich auch probiert, und die LED mit einem testprogramm geprüft. die grüne LED zeigt mir nur die betriebspannug an, sie hat einen Vorwiderstand von 2,2 kOhm.
Die lange Widerstandsreihe ergibt 56 kOhm, durchgemessen 55kOhm.
Nun habe ich meine Schaltung an ein Oskar gehängt, ich habe ersteinmal Masse und Signal von meinem mp3 Player angeschlossen und habe "perfekte2 sinus Wellen bekommen, bei welcher sich die Freqzent erhöht hat, die 5Ton folge war 13579. Nun habe ich an Masse und Pin 12 gemessen , die Ergebnisse habe ich mal hochgestellt. Die amplitude liegt bei ca. 0.6bis0.7 Volt, 1cm = 0.2V. Es fäält uaf, das es eine komische Störung gibt, welche in regelmäßigen Abständen auftritt und das Signal überlagern könnte. Ich bitte um eine Rückmeldung, Danke
schilder mal genau wo das Problem ist, ist alles a bissel verwirrt ;) geh i richtig in der annahme das du weder von elektronik noch vom programmieren viel ahnung hast ? (ist nicht boese oder abwertend gemeint, es dient dazu wie ich/wir dir helfen koennen) poste auch mal den von dir geaenderten code vlG Charly
Danke das sich jetzt einer meldet. Ich hatte gestern den "Durchbruch" ^^ Der Mikrocontroller lief auf dem internen Oszilator und nicht auf dem 8MHz Quarz, dies habe ich dann eingestellt, besser gesagt mein Lehrer, welcher die Idee hatte, das da was faul sein könnte. Und diehe da, seit dem wird ausgewertet. ein LCD habe ich vor 5 Minuten auch schon angelötet, und zum laufen gebracht. Nun werde ich mich an den Quellcode begeben, welcher mir die 5 Ton folgen ausgeben soll, bei Problemen melde ich mich nochmal. Und wenn ich fertig bin, werde ich hoffentlich den fertigen Quellcode und Schaltung hochladen. Trotzdem hier schonmal ein Danke an alle
Andre G. schrieb: > Danke das sich jetzt einer meldet. wieso jetzt ?, war vor 2 Tagen, noch keine Stunde nach deinem post, wenn du schlaefst koennen andere nix dafuer ;) ei dann hopp, viel erfolg und bis bald vlG Charly
Naja, in der Theorie klappt alles, den NF Eingang an die PC Soundkarte und 5 Ton Folgen abgespielt.... Klappt, blos an dem Scanner den wir in der Wache haben nicht.... bzw. nur bedingt. Mit dem 5 Ton tester haben wir ein paar 5 tonfolgen abgespielt, hier wird jedoch nur jede 3 oder 4 erkannt... auch die Probealamierung, die zu der Zeit war, wurde nicht vollständig ausgewertet, desweitern musste ich nen bissl mit der Lautstärke des scanner probieren, bis es überhaipt klappte. Ich stelle mal den Quelltext hoch, den ich verwwendet habe, um die Töne zu erkennen. noch mehr Toleranz ist doch auch nicht gut oder ? Main: Waitms 2 Frequlong = 8000000 / Icr_neu Icr_neu = 1 Frequenz = Frequlong Incr Timeout If Timeout > 36 Then Folge = "" Tonalt = "" Timeout = 0 Lcd1 = "" Lcd2 = "" End If A(5) = A(4) A(4) = A(3) A(3) = A(2) A(2) = A(1) A(1) = Frequenz Frequsumme = 0 For Adizaehler = 1 To 5 Frequsumme = Frequsumme + A(adizaehler) Next Durchschnitt = Frequsumme / 5 Grenzeo = A(1) + 25 Grenzeu = A(1) - 20 If Durchschnitt > Grenzeu And Durchschnitt < Grenzeo Then Select Case Durchschnitt Case 1030 To 1100 : Ton = "1" Case 1130 To 1200 : Ton = "2" Case 1240 To 1310 : Ton = "3" Case 1370 To 1430 : Ton = "4" Case 1510 To 1550 : Ton = "5" Case 1650 To 1690 : Ton = "6" Case 1810 To 1850 : Ton = "7" Case 1980 To 2020 : Ton = "8" Case 2180 To 2220 : Ton = "9" Case 2380 To 2420 : Ton = "0" Case 2580 To 2620 : Ton = "w" Case Else : Goto Main End Select Else : Goto Main End If If Ton = Tonalt Then Goto Main Tonalt = Ton Folge = Folge + Ton Timeout = 0 If Len(folge) = 5 Then Lcd1 = Folge Cls Locate 1 , 6 Lcd Lcd1 endif
Versuche doch mal folgendes: Schreibe jeden erkannten Ton direkt aufs Display und schau was passiert. Dann siehst Du welche Töne erkannt wurden und welche nicht. Vielleicht wird dir das weiterhelfen. Dein Aufbau sieht auch nicht gerade vertrauenserweckend aus. Ich vermisse die Abblockkondensatoren und einen Elko für die Eingangsspannung. Da ich nicht unter die Platine schauen kann: Das wichtigste Bauteil überhaupt ist übrigens die Masseleitung. Achte immer auf gute Masseführung. Ich verwende dafür bei Lochraster meistens 0,6mm versilberten Kupferdraht und verlege sie als allererstes. Du wirst dich wundern, was für merkwürdige Probleme plötzlich wegen schlechter Masseführung auftauchen können :-) Mit was versorgst Du die Schaltung? Stabilisierte 5V?
JA, ich benutze 5V, aus dem Pollin Evaluationsboard. die masseleitung habe ich mit den Abgeschnittenen Drähten gelegt, und diese komplett verkupfert. Einen 4,7yF Elko habe ich für das Display. Die Schlatung Funktioniert ja mit dem PC, nur am Scanner nicht. Die erkannten töne werde ich mir jetzt erstmal auflisten lassen. Und schaue mal, was dabei herum kommt.
wenn du moechtest das man dir hilft dann trage auch was dazu bei! post z.B. dein ganzes programm und nicht nur ein Teil, i habe keine zeit & lust auf raetselraten oder code safari, was soll das ?, irgendwie bist du schon ein spassisches kerlchen..........
Andre G. schrieb: > Also, ich habe die Schltung soweit, aufgebaut, nach dem Schema, wie in > dem Bild, welches ich hochgeladen habe. Das im zitierten Beitrag hochgeladene Bild ist aber doch dein Aufbau, oder? Falls ja: Ich wiederhole mich ungern. Abblockkondensatoren und Elko drauf!
Ich habe mich an das Schaltnetz gehalten, das ich hochgeladen habe, sowie an das Schaltnetz (Belegung am yC siehe Handschrift)welches ich jetzt hochlied. Wo müsste ich nun Abblockkondensatoren anbringen, und was sind das genau? Und wohin mus der Elko, und was muss es für einer sein? Danke schonmal im Vorraus, und entschuldigt bitte mein Unwissen....
Zudem habe ich vergessen, das ich nach der Germaniumdiode einen Widerstand auf ´Ground habe. Diesen kann ich mit 2 Jumpern steuern, folgendes ist möglich: -Kein Widerstand auf Ground ( 1 Jumper raus ) -10kOhm auf Ground ( 1 und 2 Jumper drin ) -20kOhm auf Groun ( 1 Jumper drin )
Andre G. schrieb: > Wo müsste ich nun Abblockkondensatoren anbringen, und was sind das > genau? > Und wohin mus der Elko, und was muss es für einer sein? Schau mal hier: http://www.rn-wissen.de/index.php/Abblockkondensator Nimm 100n Keramikkondensatoren. Die packst Du dann (so nah wie möglich!) an die Spannungsversorgungspins des AVR (also zwischen die Pins 7+8 UND 20+22). Ich hoffe Du hast die Pins 20+22 ebenfalls beschaltet (so wie in dem Schaltbild für das LCD). Zusätzlich machst Du noch 100n von AREF an GND. Das ist zwar kein Abblockkondensator, sollte aber gemacht werden wenn man keine externe Referenzspannung dort anschließt. Den Elko setzt Du am besten hinter die Klemme für die Eingangsspannung. Der Wert ist nicht so kritisch. 100µ oder so. Andre G. schrieb: > Danke schonmal im Vorraus, und entschuldigt bitte mein Unwissen.... Macht nix. Jeder fängt mal an :-) P.S. Gewöhne dir bitte ab solche Schaltungsfragmente zu posten. Keiner hat hier Lust auf Puzzlespielchen. Nimm dir irgendeinen Schaltplaneditor deiner Wahl (z.B. Eagle) und fertige einen kompletten Schaltplan an.
Das Projekt mit dem oben genannten Code ist einfach Murks, es funktioniert vielleicht auf dem Schreibtisch, aber nicht oder zumindest nicht sicher im realen Einsatz. Du brauchst ein Digitalfiler (Görtzelfilter o.Ä.). Beitrag "Re: 5Ton auswertung mittels Atmega8" http://de.wikipedia.org/wiki/Goertzel-Algorithmus
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.