Forum: Mikrocontroller und Digitale Elektronik Atmega8 mit einem hc 05 bluetooth modul


von Lederer Thomas (Gast)


Angehängte Dateien:

Lesenswert?

Hallo ich habe ein kleines Projekt und komme einfach nicht weiter.

Also vorerst habe ich die Usart SChnittstelle programmiert und zwar nur
so dass eine variable x immer wenn eine Datei empfangen wird (am RX Pin)
deren Wert erhält.
Doch bereits hier beginnt dass Problem, obwohl ich dem Bluetooth Modul
ständig irgendwelche Daten sende, scheint der RX Pin vom Mikrocontroller
nichts zu bekommen und daher geht es nicht mehr aus der while Schleife
raus.

das Bluetooth Modul habe ich mit folgendermaßen angehängt:
Das RX des Bluetooth Moduls an das TX des Z80
Das TX des Bluetooth Moduls an das RX des Z80
GND vom Bluetooth Modul an das lo(low) des Z80
vcc vom Bluetooth Modul an das hi(high) des Z80

Ich kann mich auch ohne Probleme mit dem Bluetooth Modul verbinden und
beim schicken gewisser Daten wird mir bei meinem Smartphone auch keine
Fehlermeldung angezeigt. Nur führt es eben die Aktionen, welche danach
kommen nicht mehr aus, da der Mikrocontroller, so vermute ich gar keine
Daten erhält.

Ich bitt um Hilfe.

von Timmo H. (masterfx)


Lesenswert?

Dein Code angehängter kommt von einem atmel. Willst du also z80 mit 
einem atmel via Bluetooth koppeln? Wie sieht die Routine zum koppeln 
aus?

von Lederer Thomas (Gast)


Lesenswert?

Nein ich habe einen "atmega 8" prozessor, hab das eigentlich auch 
geschrieben aber das hat es irgendwie durch das z80 ersetzt

ich will von einer android app, beispielsweise eine 1 zum 
mikrocontroller schicken und dadurch dann z.B eine Led einschalten.

Mfg Lederer Thomas

von Lederer Thomas (Gast)


Lesenswert?

z80 = a t  m e g a ( hab es hier so blöd geschrieben, da es es sonst mir 
immer ersetzt, ich weiß nicht wieso sorry.)

von Timmo H. (masterfx)


Lesenswert?

Egal welcher uC... Schau dir mal die "Bluetooth Chat" app an von Google. 
Musst nur im Quellcode die uuid anpassensud 
"00001101-0000-1000-8000-00805F9B34FB", dann sollte es klappen

von Lederer Thomas (Gast)


Lesenswert?

Entschuldigung falls es eine total blöde frage ist, aber was ist die 
uuid?

von Timmo H. (masterfx)


Lesenswert?

Wtf... Wird hier g_oogle durch altavista ersetzt? Ist das ein April 
Scherz? Ich schreibe jetzt G_oogle : Google.  Edit: Lol

von Lederer Thomas (Gast)


Lesenswert?

Also ich habe jetzt nach dem Bluetooth Chat gesucht und habe auch 
reichlich gefunden, jedoch weiß ich nicht welcher der richtige ist bzw. 
wie man den Quellcode am leichtesten verändern kann. Wäre um einen Link 
oder dergleichen dankbar.

von Timmo H. (masterfx)


Lesenswert?

Beim Android sdk ist ein Bluetooth Chat dabei. Das meinte ich

von Lederer Thomas (Gast)


Lesenswert?

Ok, danke
werde das morgen versuchen
Kann ich mich bei auftretenden Fragen nochmal melden?

von Stefan F. (Gast)


Lesenswert?

> Kann ich mich bei auftretenden Fragen nochmal melden?

Nein, das ist streng verboten. Wir hacken dann deinen Ebay Account. :-)

Blöde Frage, natürlich kannst sollst du hier weiter fragen.

Um nicht zu viele Baustellen gleichzeitig zu haben solltest du einfach 
mal ohne Mikrocontroller arbeiten. Versorge das Bluetooth Modul mit 
Strom und verbinde seinen seriellen Ausgang mit dem Eingang.

Wenn du dann vom PC oder Handy aus Zeichen an das Modul sendest, kommen 
sie als "echo" wieder zurück.

Bluetooth Geräte können mehrere Funktionen zugleich anbieten. Sie werden 
durch die UUID unterschieden - ähnlich den Port-Nummern im Internet 
(80=Webserver, 21=FTP Server, 22=SSH).

Ein Gerät, dass die UUID 00001101-0000-1000-8000-00805F9B34FB anbietet 
will sagen "Ich kann RFCOMM". Alle mir bekannten Bluetooth-zu-serial 
Module nutzen diese Nummer.

Die Chat Demo-Anwendung im Google SDK nimmt einfach irgendeine frei 
erfundene Nummer (glaube ich jedenfalls). Deswegen muss auf beiden 
Geräten, die miteinander chatten, die gleiche App laufen.

von Lederer Thomas (Gast)


Lesenswert?

Habe das Android Studio jetzt installiert, den Bluetooth Chat gefunden 
und dort die uuid auch gleich geändert. Doch als ich nun die datie zu 
einer apk. machen will werde ich nach einem key (dessen Pfad und so 
weiter) gefragt.
Ich bin jetzt immer auf " Build " und dann auf " generate signed apk " 
gegangen. Falls das stimmt könnt ihr mir dann bitte sagen, woher ich den 
key bekomme?

Lederer

von Stefan F. (Gast)


Lesenswert?

Du brauchst keinen Key, der wird nur für öffentlich verteilte Programme 
benötigt.

Du musst in deinem Handy das Debugging über USB freischalten. Danach 
klickst du im Android Studio auf den Run Button. Dabei wird das 
unsignierte APK Paket per USB auf dem Handy installiert.

von Stefan F. (Gast)


Lesenswert?

Du brauchst keinen Key, der wird nur für öffentlich verteilte Programme 
benötigt.

Du musst in deinem Handy das Debugging über USB freischalten. Danach 
klickst du im Android Studio auf den Run Button. Dabei wird das 
unsignierte APK Paket per USB auf dem Handy installiert.

Die modifizierte Version des Programms gab es auch mal im Google Play 
Store. Suche da mal nach "RFCOMM" oder "Bluetooth Modul" oder "Arduino 
Bluetooth".

von Jim M. (turboj)


Lesenswert?

Stefan Us schrieb:
> Du brauchst keinen Key, der wird nur für öffentlich verteilte
> Programme
> benötigt.
>
> Du musst in deinem Handy das Debugging über USB freischalten. Danach
> klickst du im Android Studio auf den Run Button. Dabei wird das
> unsignierte APK Paket per USB auf dem Handy installiert.

Nich ganz korrekt: Es wird mit dem automagisch generiertem Debug Key 
signiert, und dann installiert. Deshalb kann es zu Key Fehlern kommen, 
wenn man das auf mehr als einen PC macht.

von Lederer Thomas (Gast)


Lesenswert?

Habe jetzt dass Bluetooth Modul unter Strom gestellt und die RXD mit dem 
TXT verbunden. Das Modul funktioniert: Es schickt mir die Daten, welche 
ich ihm schicke zurück ==> Es muss an meinem Programm liegen doch ich 
weiß nicht woran

von Lederer Thomas (Gast)


Lesenswert?

Ich kann das schon mit der Usart machen oder muss ich es mit dem RS232 
machen?

von Lederer Thomas (Gast)


Lesenswert?

Entschuldigung es funktioniert nun doch!!! Der Controller enthält das 
Zeichen, doch wenn ich eine 1 in meinem programm mit
if (x==1) ......

vergleiche wird die Funktion darin nicht ausgeführt.
x ist als unsigned char deklariert.
kann es mit dem Zusammenhängen?

von void (Gast)


Lesenswert?

1
unsigned char x = "1";
2
if (x==1)     // false
3
if (x=="1")   // true

von Max H. (hartl192)


Lesenswert?

void schrieb:
> unsigned char x = "1";
> if (x==1)     // false
> if (x=="1")   // true
Beide falsch, versuchs mal mit
1
char x = '1';
2
if(x == '1')

von void (Gast)


Lesenswert?

Wo Max recht hat, hat er recht. Zu schnell getippt...

von Lederer Thomas (Gast)


Lesenswert?

Habe das nun auch versucht doch dass funktioniert leider auch nicht.

Ich habe jetzt beim Bluetooth modul das RXD mit dem TXD verbunden so 
dass es mir die Daten zurückschickt, die es erhält.

Wenn ich meine 1 schicke bekomme ich 12|99|99|1# zurück, doch mit dem 
kann ich mein x nicht vergleichen.


Weiß jemand woran das liegt?

von Stefan F. (Gast)


Lesenswert?

Das musst du nochmal etwas genauer beschreiben:

> Habe jetzt dass Bluetooth Modul unter Strom gestellt und die
> RXD mit dem TXT verbunden. Das Modul funktioniert: Es schickt
> mir die Daten, welche ich ihm schicke zurück

Und danach schreibst du:

> Ich habe jetzt beim Bluetooth modul das RXD mit dem TXD
> verbunden so dass es mir die Daten zurückschickt, die es erhält.
> Wenn ich meine 1 schicke bekomme ich 12|99|99|1# zurück,
> doch mit dem kann ich mein x nicht vergleichen.

Das passt ja so nicht zusammen.

Vielleicht magst du mal meine Library ausprobieren, da kannst du ganz 
einfach Standard I/O Funktionen wie getc, putc, gets, puts, printf und 
scanf verwenden.

http://stefanfrings.de/avr_hello_world/

von Lederer Thomas (Gast)


Lesenswert?

Ja ich habe mich falsch ausgedrückt:
Zum vergleichen habe ich das TX des Blutooth Moduls schon wieder an den 
Mikrocontroller angeschlossen.

Habe das mit dem Zurückschicken der Daten nur gemacht, dass ich sehe, 
welche Daten beim Mikrocontroller ankommen.

Lederer THomas

von Lederer Thomas (Gast)


Lesenswert?

könntest du mir sonst ein Codebeispiel mit getc() und deiner 
inkludierten Library schicken, da dass bei mir leider nicht funktioniert

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.