Forum: Compiler & IDEs [HILFE] Senden und Empfangen von Daten


von Anfänger (Gast)


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?

von Eric B. (beric)


Lesenswert?

Welche IR-Sensor? Welcher uP? Was für ein Motor-treiber? Welche Daten?
Wie sieht die Schaltung aus, bzw. soll die aussehen?

Und außerdem ja: http://www.i2c-bus.org/twi-bus/

von Anfänger (Gast)


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.

von Karl H. (kbuchegg)


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.

von Bastian R. (louie)


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...

von Mike (Gast)


Lesenswert?

Anfänger schrieb:
> Außerdem ist TWI und I2C nicht das gleiche?

Doch, ist es. Der doppelte Name hat patentrechtliche Gründe. Die 
Bezeichnung I²C stammt von Philips, die Bezeichnung TWI von Atmel.

In deiner Auflistung hast du das recht einfache SPI vergessen.

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
Noch kein Account? Hier anmelden.