Hallo Zusammen, ich bin völlig neu auf dem Gebiet der Mikrocontroller, deshalb sind meine Fragen vielleicht noch eher "dumm", habe aber in den letzten Tagen schon mal viel hier im Forum und auf anderen Seiten gelesen. Ich würde gern min. 8 Temperaturen messen, und zwar mit dem SMT160-30 wegen der hohen Auflösung. Darüber habe ich hier auch schon einiges gelesen. Bin aber noch recht unsicher, wie das in Verbindung mit einem Mikrocontroller funktioniert. Ich suche nun einen geeigneten (passenden) Mikrocontroller dazu, der möglichst sparsam ist. Ich hatte schon einiges über den MSP430 gelesen, der recht wenig verbraucht und für den Batteriebetrieb geeignet ist. Kann ich eine solche PWM-Messung mit dem realisieren? Oder habt ihr vielleicht einen geeigneteren, den ihr mir empfehlen könnt? Habe ich das auch richtig verstanden, dass man -wenn man mehrere SMTs- messen möchte, diese an einen Multiplexer anschließt und den dann an den Controller? Wie viel Verzögerung habe ich dann bei der Messung der Werte der verschiedenen Sensoren? Was für die Auswahl des Controllers noch wichtig wäre, die Temperaturen sollen nach der Messung auf eine SD-Karte geschrieben werden. Wäre super, wenn ihr mit einige Tipps geben könntet, was die Auswahl und evtl. einfachste Umsetzung wäre.
Hallo, Nina! Was soll ich sagen? Grundsätzlich ist jeder µC dafür geeignet. Nach Jahren der AVR-Nutzung bin ich auf ARM umgestiegen und zufrieden. Die Schusser bieten alles, was Du brauchst und sind spottbillig. Z.B. STM32F105R8T6 2,95€ netto bei EBV. Da ist es sinnlos, einen der vielen kleineren µC zu nehmen. Als Entwicklungsumgebung kannste das STM3210C nehmen (~160,-€ netto), das ich selbst in Bearbeitung habe. Ein LCD und eine MicroSD-Buchse sind auch drauf. Wenn es explizit eine Standard-SD-Buchse sein soll, kannste die extern anschließen. Verzögerungszeiten zwischen Meßwerten beim ADC liegen (je nach µC-Taktung) im Bereich von wenigen 100ns bis einzelnen µs, sollten also kein Problem für Temperaturmessungen darstellen. Hoffe, geholfen zu haben. Gruß - Wolfgang
Ein Atmega164 wäre geeignet, damit kannst Du bis zu 9 Sensoren auslesen. Sie werden über den ADC-Multiplexer an den Capture-Eingang des Timers T1 gelegt und damit kannst Du dann das Tastverhältnis messen. Peter
Wolfgang schrieb: > Grundsätzlich ist jeder µC dafür geeignet. Da der SMT160-30 an 4,75 .. 7V läuft, sollte der MC schon ein 5V-Typ sein. Sonst braucht man extra Spannungsregler und Pegelkonverter. Der STM32F105R8T6 ist also nicht geeignet. Peter
Und wozu braucht ihr den ADC? Duty Cycles würde ich mittels Timer erfassen und daraus die Temperatur berechnen. Mit einem ATmega zum Beispiel ein Timestamp für die steigende und die fallend Flanke und das ganze ist erledigt. Für verschiedene Sensoren entweder mehrer Timer nutzen oder multiplexen. Nix ADC.
Ich weiß nicht, in wiefern das damit geht (soeinen µC hab ich nicht), aber ich bin eben bei Microchip über das hier gestoplert: http://ww1.microchip.com/downloads/en/DeviceDoc/41565a.pdf Auf Seite 7 unten beim Timer 1 Gate steht: Example Applications ■ Delta Sigma ADC ■ PWM Decode ■ SMPS Current Sharing ■ Pulse Frequency Measurements ■ Time Frequency Measurements Ist PWM-Decode nicht genau das, was du suchst? Wie gesagt, habe ich noch nicht probiert, deshalb kann ich nicht sagen, obs was ist. Sollen alle PIC18(L)F___K22 haben, also z.B. PIC18F67K22 oder PIC18F87K22.
Kommt darauf an was man messen will. Vielleicht wären TSIC 306 oder 506 von ZMD auch geeignet. Man kann sie mit 3 bis 5V betreiben und die Genauigkeit und Auflösung sind sehr gut. Man braucht nur einen Pin pro Sensor, allerding ist die Ansteuerung etwas gewöhnungsbedürftig.
Wayne schrieb: > Und wozu braucht ihr den ADC? Garnicht, sondern nur den ADC-Multiplexer. Damit hat man dann 10 Eingänge für das Input-Capture: ADC0 ... ADC7, AIN1, ICP Peter
Nina schrieb: > Ich würde gern min. 8 Temperaturen messen, und zwar mit dem SMT160-30 > wegen der hohen Auflösung. Darüber habe ich hier auch schon einiges > gelesen. Bin aber noch recht unsicher, wie das in Verbindung mit einem > Mikrocontroller funktioniert. Der SHM gibt ein temperaturabhängiges Rechtecksignal mit einer maximalen Frequenz von 4kHz aus. Man könnte also dieses Signal mit dem Controller sampeln. Ich persönlich hätte wahrscheinlich einn Sensor mit anderer Schnittstelle genommen. > Ich suche nun einen geeigneten (passenden) Mikrocontroller dazu, der > möglichst sparsam ist. Ich hatte schon einiges über den MSP430 gelesen, > der recht wenig verbraucht und für den Batteriebetrieb geeignet ist. > Kann ich eine solche PWM-Messung mit dem realisieren? Oder habt ihr > vielleicht einen geeigneteren, den ihr mir empfehlen könnt? Machen kann man das praktisch mit jedem gebräuchlichem Controller. Ich hab' früher 'mal in den MSP430 reingeschnuppert, mir hat's gefallen (aber ich beschäftige mich nicht mehr damit). > Habe ich das auch richtig verstanden, dass man -wenn man mehrere SMTs- > messen möchte, diese an einen Multiplexer anschließt und den dann an den > Controller? Stell Dir den MUX wie einen Schalter vor. Mit der "Adresse" am Mux kannst Du schalten, welches Signal (welchen Sensors) an Deinen Sampler kommt. > Wie viel Verzögerung habe ich dann bei der Messung der Werte > der verschiedenen Sensoren? Es gibt nur eine "Verzögerung" dadurch, daß Du pro Zeiteinheit nur einen Sensor "auslesen" kannst. Hängt auch von der Genauigkeit ab. Je länger Du sampelst, desto genauer wird's. Die reinen Schaltzeitverluste sind komplett irrelevant, moderne Controller schalten schnell genug, um mit 8kHz sampeln zu können. > Was für die Auswahl des Controllers noch wichtig wäre, die Temperaturen > sollen nach der Messung auf eine SD-Karte geschrieben werden. Ich würd' einen mit brauchbarer SPI-Unterstützung nehmen. Und das mit der SD-Karte erst dann anfassen, wenn Deine Temperaturmessung ordentlich funktioniert. Ein gutes (im Sinne von brauchbar) Eval-Board kann bei solchen Sachen (zumal's z.ß. den 430er nur SMT-mässig gibt) Gold wert sein. Viel Erfolg, Iwan
Vielen Dank für eure vielen und vor allem schnellen Antworten. Hab jetzt den ATmega168 ausgewählt, da ich noch ein myAVR-Entwicklungsboard bekommen habe und der ATmega168 mit dem ATmega 8 pingleich sind. naja, was ich im Moment damit vor habe, sollte es wohl erstmal reichen. Mein nächstes Problem ist die Flankenauswertung der Pulse, die der SMT schickt. Habe auch in der letzten Zeit ganz viel gelesen (leider auch gegensätzliches), auch hier einige Programmcodes, aber als Anfänger wird man daraus leider nicht immer schlau. Habe mir jetzt aus den vielen Foreneinträgen und sonstigen Dingen, die ich darüber gelesen habe, überlegt, wie man das evtl. machen könnte. Vielleicht kann mir jemand sagen, ob das prinzipiell so geht, wie ich mir das gedacht habe. Vielleicht hat auch jemand einen Ansatz, wie man das einfach in Assembler schreiben könnte. 1.PB0 als Eingang setzen (Input Capture) 2.ICP1 auf steigende Flanke setzen, damit wird der timestamp in ICR1H/ICR1L geschrieben 3.Dies müsste ich ja dann in einer Variablen 1 sichern 4.ICP auf fallende Flanke setzen, timestamp wieder in ICR1H/ICR1L 5.In Variable 2 sichern 6.ICP1 auf steigende Flanke setzen 7. In Variable 3 sichern 8. Pulsweite und Periode berechnen etc. eigentlich müsste ich ja nun Variable 3= Variable 1 setzen, denn die zweite steigende Flanke ist ja automatisch die erste der nächsten Messung, oder nicht?! Um die Genauigkeit zu erhöhen muss ich ja z.B. über mehrere ms messen oder sowas, werden dann die einzelnen Pulsweiten addiert und daraus der Mittelwert gebildet oder wie kann ich diesen Vorgang realisieren. Das ist mir irgendwie auch noch nicht ganz klar geworden. Ich hoffe meine erdachte Vorgehensweise ist nicht komplett konfus, und ihr könnt mir weiterhelfen! Danke im Voraus und Grüße
Jaja, der Artikel ist 1 Jahr alt. Aber weil keine ordentliche Lösung vorgeschlagen wurde, will ich das heute nachholen. Eine sehr gute Applikation zur "capture" Auswertung des SMT160 Temperatursensors incl. Software für einen PIC uC findet sich hier: http://www.technik.dhbw-ravensburg.de/~lau/wetterstation.html (nein, nicht meine Seite). Gruss
Erich schrieb: > Aber weil keine ordentliche Lösung vorgeschlagen wurde Wurde es doch. Ich kann Dir versichern, das Input-Capture des AVR ist eine ordentliche Lösung und sie funktioniert hervorragend. Ich benutze es selber auf einem ATtiny24. Peter
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.