Ich habe mal eine Frage zum ADC, Ich möchte mit einem Ultraschall Sensor eine Entfernung messen und in verschiedenen Abständen die Werte verwerten, zusätzlich möchte ich mit Odometrie Geschwindigkeiten erfassen oder ggf Abstände messen. Da ich für beide einen Analog Digital Wandler benötige, wollte ich mal fragen ob man den für beides Gleichzeitig verwenden kann oder ob es sonst andere Möglichkeiten gibt? Es kommen wahrscheinlich noch mehr Funktionen dazu, die einen ADC benötigen werden. vielen Dank für Zahlreiche Antworten Gruß Chris
Christian Dopatka schrieb: > Odometrie Geschwindigkeiten erfassen oder ggf Abstände messen. Da ich > für beide einen Analog Digital Wandler benötige, wollte ich mal fragen > ob man den für beides Gleichzeitig verwenden kann oder ob es sonst > andere Möglichkeiten gibt? Auf einem AVR-µC? Nein. der hat nur einen ADC, den man aber an mehrer Quellen nacheinander aufschalten kann. Du kannst also in rascher Folge jeweils eine Quelle ausmessen und dann zur nächsten Quelle übergehen.
also meinst du multitasking? weißt du in welchen Zeitraum sich das abspielen würde?? bei Ultraschall muss ja schnell reagiert werden nehme ich mal an oder?
>bei Ultraschall muss ja schnell reagiert werden nehme >ich mal an oder? Davon kannst du ausgehen. Du kannst auch davon ausgehen das das ganze noch viel zu schwer für dich ist.
Achso um noch mehr Infos zur Verfügung zu stellen, Ich habe einen Atmega 16 mit der es es gemeistert werden soll ist es echt nur möglich einen Analog wert STETIG zu überwachen? oder sonst nur abwechselnd? gibt es keine andere Lösung
Christian Dopatka schrieb: > ... echt nur möglich einen Analog wert STETIG zu überwachen? In der Digitalwelt gibt es kein "Stetig", sondern alles geht in Stufen so z.B. die Zeit (Stichwort Abtastrate/-intervall) und die Amplitude (Stichwort Auflösung, Quantisierungsrauschen). Die zeitliche Abtastung hält noch einige Eigenheiten bereit, wie z.B. das Shannon'sche Abtasttheorem und Aliasing-Effekte.
Du hast immer noch nicht geschrieben was für ein Controler du verwendest. AVR's können Analogwerte aus verschiedenen Quellen auswerten. Der Atmaga8 z.b. hat 6 Pins an denen ein Analogwert angelegt werden kann, der dann vom ADC wandler nacheinander gewandelt werden kann. Wann welcher Eingang gewandelt werden soll kannst du selbst bestimmen. Ob der ADC Wandler schnell genug ist für all die Aufgaben musst du dir vorher ausrechnen. Ich weiß gar nicht ob der ADC generell schnell genug ist um Ultraschall sensoren auszuwerten. Die Odometrieauswertung muss vielleicht auch nicht unbedingt über den ADC geschehen. Sicherlich benutzt du eine Lochscheibe oder Ähnliches. Mann könnte deren Impulse auch per Schwellwertschalter (Schmitttrigger) in für den Controller verwertbare Signale umwandeln. So sparst du dir eine menge Entwicklungsarbeit und Rechenzeit. Wenn du dich noch nie mit einem ADC Wandler beschäftigt hast, geh die Sache Schritt für Schritt an. Versuch erstmal den ADC wandler überhaubt ans laufen zu bekommen und Analogwerte einzulesen. Wenn das klappt kannst du dich mit dem Multitasking beschäftigen. Das Datenblatt zu deinem Controller ist dafür unabdingbar. Kann es sein das du dabei bist einen ASURO zu programmieren?
Steffen P. schrieb: > Kann es sein das du dabei bist einen ASURO zu programmieren? ja genau so ist es. Also ich mache eine Fortbildung zum Techniker und meine Facharbeit soll sein den Asuro zu Erweitern, so dass Odometrie als auch Ultraschall und LCD Display zusammen Funktionieren. Ich möchte den Atmega8 durch eine zusätzliche Platine mit einen Atmega16 o.ä. ersetzen um mehr Speicher und I/O Pins zu erlangen. Die Ultraschallabstandsmessung Funktioniert, und wird im Buch "Mehr Spaß mit ASURO" genau beschrieben ebenso die Odometrie. Dazu wird jeweils der ADC benutzt. Ich bin mir nicht sicher ob es Zeitlich hin haut, wenn ich jeweils eine Funktion nach einander abarbeite oder ob es nötig ist beides Gleichzeitig zu tun... eine überlegung war sonst noch einen Attiny13 über I²C die Ultraschallortung durchführen zu lassen und die Daten an den Hauptcontroller zu senden, oder ist dies völlig unnötig?
Christian Dopatka schrieb: > Die Ultraschallabstandsmessung Funktioniert, > und wird im Buch "Mehr Spaß mit ASURO" genau beschrieben ebenso die > Odometrie. Dazu wird jeweils der ADC benutzt. Ich bin mir nicht sicher > ob es Zeitlich hin haut, wenn ich jeweils eine Funktion nach einander > abarbeite oder ob es nötig ist beides Gleichzeitig zu tun... > eine überlegung war sonst noch einen Attiny13 über I²C die > Ultraschallortung durchführen zu lassen und die Daten an den > Hauptcontroller zu senden, oder ist dies völlig unnötig? In meinen Augen tatsächlich völlig unnötig. Ich schlage die Verwendung eines Komparators vor. Dessen Schaltschwelle ist entsprechend durch Beschaltung zu realisieren. Dann ist die Sache ganz simpel. Komparator als Interrupt aufschalten, den ersten Burst ignorieren (Sendeburst), der zweite sollte dan das Echo sein. Nun nur noch die Zeit zwischen zwei Komparatorinterrupts messen und verrechnen - fertig ist die Odometrie. Durch das fehlende pollen (abfragen) der Port oder ADC spart man sich gewaltig Resourcen.
Ok wie ich gerade den Unterlagen entnehmen konnte, habe ich mich wohl falsch Ausgedrückt entschuldige der Fehler. Es sieht nun wie folgt aus: Die Ultraschallortung erfolgt mit einen Komparator und es wird der verstärkte empfangene Wert mit UCC verglichen. Um dies durch zu führen muss der AD-Wandler deaktiviert werden. Ultraschall wird benötigt um gegenstände, die vor dem ASURO sich befinden erkannt werden und die Fahrt rechtzeitig zu stoppen. Dies soll auf die neue Platine und ist noch individuell änderbar. Um aber nun die Odometrie der Räder weiterhin messen zu können (wird benötigt, da eine bestimmte Fläche abgefahren werden soll) muss der AD-Wandler weiterhin aktiv bleiben, um den Schwellwert von Hell und Dunkel unterscheiden zu können(wird vom AD-Wandler gemssen). Die Odometrie ist fest auf der Platine integriert und lässt sich nur sehr schwer ändern. Nun ist die Frage wohl deutlicheer, ob ich für den Ultraschall nicht doch einen externen kleinen Controller verwenden soll. oder gibt es doch andere Lösungen die einfacher sind?
Also vorweg mal ein kleinen Tipp. Ich hab die Odometrie vom ASURO auch schon programmiert. Das problem ist dabei das die fotodiode komplett offen liegt. Das heißt sie ist sehr empfindlich gegen störquellen. Einfacher wird es wenn man sie komplett abschirmt, also ein gehäuse drumherum baut. So ist man gegen sich änderne betriebsverhältnisse gewapnet. Christian Dopatka schrieb: > Nun ist die Frage wohl deutlicheer, ob ich für den Ultraschall nicht > doch einen externen kleinen Controller verwenden soll. Das problem beim ASURO ist, das sämmtliche kommunikations pinns bereits belegt sind. Das TWI hängt zum teil an der Tastenauswertung. Der USART wird zur kommunikation mit dem PC genutzt. Trozdem währe das vielleicht ein Ansatzpunkt. Ich weiß nicht mehr genau wie die Kommunikation mit dem PC funktioniert. Jedenfalls sollte es möglich sein die Funktion entweder umschaltbar zu machen, also wahlweise mit PC oder mit controller zu qwatschen, oder aber den "Multi-processor Communication Mode" zu nutzen. Dabei bekommt jeder Teilnehmer eine Adresse und fängt erst an den USART zu beachten wenn er angesprochen wird. Da musst du dich mal schlau machen ob die kommunikation zum PC das zu lässt. Schonmal mit USART gearbeitet? Ein zusätzlicher Controller würde wahrscheinlich viele weitere Möglichkeiten öffnen. Eine einfache I/O erweiterung könntest du dann über den TWI Bus machen.
erstmal danke für ne ANtwort :) Steffen P. schrieb: > Das problem beim ASURO ist, das sämmtliche kommunikations pinns bereits > belegt sind. > Das TWI hängt zum teil an der Tastenauswertung. > Der USART wird zur kommunikation mit dem PC genutzt. Trozdem währe das > vielleicht ein Ansatzpunkt. Also ich möchte den Atmega 8 mit ausbauen, über den Sockel soll dann eine Verbindung ( mit Drähten ) zu einer darüber gebauten Platine erfolgen. da will ich dann einen Atmega16 oder vergleichbares einsetzen. Somit habe ich dann mehr I/Os und mehr Flashspeicher. Soweit die Theorie, woran meine Planung noch scheitert ist eben das der AD-Wandler gebraucht wird und bei der Ultraschall geschichte eben nicht. und da fällt mir Momentan nur ein das ich einen zusätzlichen kleinen Controller nehme und da passt ja der Attiny13. Gibt es sonst keine Alternative denke ich zu kompliziert? oder genau richtig?
Naja, die Bandbreite zwischen Falsch und Richtig ist recht groß^^ Viele Wege führen nach Rom. Deine Variante währe natürlich auch möglich. Es würde einem sogar die möglichkeit geben grundlegende Änderungen zu machen. Beispielsweise könntest du dann die Odometer Auswertung dann wie gesagt nicht direkt auf den ADC Wandler führen, sondern das Signal mit einem Schwellwertschalter direkt in ein verwertbares 5V Rechteck Signal wandeln. Das kannste dann z.b. an nen interrupt Pin anschließen. So sparst du dir die wandelei und damit eine menge Entwicklungsaufwand und Rechenzeit. Find ich sinvoller. Auch die gesammte übrige Peripherie kannst du nach belieben neu anschließen. Wenn du aber einen ganz anderen controller verwenden willst hast du folgende Nachteile: -Du brauchst einen anderen Compiler, kannst also nicht mehr den beim Asuro beigelegten verwenden -Du kannst die vorgefertigten Funktionen nicht mehr verwenden, bzw. musst sie umschreiben. -Du müsstest den Bootloader neu aufspielen (wenn man da so überhaubt drannkommt) oder umschreiben. -Es währe etwas Verdrahtungsaufwand. Das erfordert schon etwas an Kenntnissen. Wenn dein Asuro dein erstes Projekt ist, bleib besser erstmal beim Atmega8. Übrigens nochmal: wenn du den TWI (I²C) bus zur verfügung hast, kannst du damit deine I/O Ports beliebig erweitern. Es gibt dafür entsprechende Bauteile.
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.