[HILFE] Senden und Empfangen von Daten

Gast #3906439
Lesenswert?

Hallo,

da ich ein absoluter Anfänger in der µC Programmierung bin und 
inzwischen schon verwirrt bin welche Art der Datenübertragung ich nutzen 
soll wollte ich mal nachfragen wie es am besten ist die Daten von einem 
Infrarot-Sensor einlesen kann bzw. von einem Motortreiber die Daten zu 
senden und zu auszulesen.

Ich beschäftige mich schon seit Wochen damit aber bin mir wirklich nicht 
in klaren ob ich UART, I2C oder TWI benutzen soll.

Außerdem ist TWI und I2C nicht das gleiche?
Gast #3906533
Lesenswert?

Also es handelt sich um den GP2D12 IR-Sensor, den ATMEGA16, den MD25 
Motortreiber und ich verwende zur Programmierung das ATMEL AVR Studio 
mit einem STK500.

Ich möchte den IR-Sensor oder den Motortreiber ansteuern. Beim IR-Sensor 
hab ich ja nur einen Datenleitung brauch ich für TWI nicht 2? (oder irre 
ich mich da jetzt komplett?) Beim Motortreiber müsste es ja gehen über 
TWI ihn anzusprechen leider verstehe ich nicht wie.
#3906596
Lesenswert?

Anfänger schrieb:
> Also es handelt sich um den GP2D12 IR-Sensor,

der liefert dir eine analoge Spannung.

>  den MD25
> Motortreiber

bei dem hast du eh nicht viel Wahl. Der kann I2C und serielle.

Für einen Anfänger ist Serielle sicherlich erst mal einfacher, weil man 
eine Serielle erst mal damit testen kann, dass ein PC mit 
Terminalprogramm den anderen Kommunikationspartner spielt. Dort sieht 
man dann schnell, was man gesendet hat bzw. kann mittels Tastatur seinem 
µC was 'zum Frass' vorwerfen, ehe dann die eigentliche Schaltung 
übernimmt.


Ansonsten: schrittweise vorgehen!
Nciht alles auf einmal, sondern in Etappen. SInnigerweise mit der 
'Ausgabe' anfange, die in deinem Fall die Ausgabe an den Motortreiber 
wäre. Da du die aber zunächst mal auf den PC legen kannst (der dann 
anzeigt, was du dem Motortreiber schickst), kannst du erst mal die UART 
in Betrieb nehmen, da drauf dann erst Ausgaben machen und damit dann die 
Werte vom ADC ausgeben, an den du den Distanzsensor angeschlossen hast.

Somit ist dein Vorgehen
* UART in Betrieb nehmen
* erst mal den PC als Kommunikationspartner benutzen
* auf dem Termianl am PC Ausgaben machen
* DIstanzsensor an den ADC
* gemessene Werte über die UART am PC ausgeben
* Werte in Distanzen umrechnen und am PC ausgeben
* PC testweise mit dem Motorteiber verbinden und zusehen, dass man durch 
händische Eingabe von Befehlen an den Motortreiber lernt, mit dem 
Treiber umzugehen.
* Werte in Motorbefehle umsetzen und am PC ausgeben. Kontrollieren, dass 
die Befehle korrekt und sinnvoll sind.
* PC durch den Motortreiber ersetzen.

* dem Typen eine reinhauen, der dir gesagt hat, dass das eh alles ganz 
einfach wäre und das man dazu nichts können braucht.
#3906607
Lesenswert?

Hallo "Anfänger" Dein IR-Sensor stellt eine analoge Spannung (die 
Proportinal zur entfernung ist) zur Verfügung. Da kannst du weder mit 
I²C oder UART oder sonst irgendeinem Datenprotokoll drauf zugreifen. Du 
musst den Analog/ Digital Konverter des µC dafür verwenden. Die Analoge 
Spannung des IR Sensors einlesen, in eine Entfernung umrechnen, und dann 
den Motortreiber entsprechend ansteuern... (Wie das letztere 
funktioniert würde ich mir erst Gedanken drüber machen, wenn du eine 
korrekte Entfernung gemessen hast) Bis dahin ist es nämlich noch ein 
(mittel)weiter Weg. Aber nichtz verzagen, im Tutorial hier findest du 
gute Anleitungen wie man den A/D Converter von µC benutzt...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren