Arduino + HC-05 + Nepixel Ring !! Hilfe !!

Hallo an euch alle :slight_smile:

mein Name ist Martin aus Leonberg.
Ich habe folgendes Problem : Ich versuche seit 1 Woche den Nano + Bluetooth HC 05 + Neopixel Ring zum Laufen zu bekommen… :confused:

Also der Neopixel (12) geht mit dem Nano perfekt, da klappt alles. Nun möchte ich den Ring per HC 05 und Handy steuern… und das klappt nicht.

Der HC 05 ist RX - TX und TX -RX an Port 0 und 1 angeschlossen. Das koppeln mit dem Handy klappt auch… auch wenn ich dann die Farben auf der App ändern möchte BLINKT das RX auf dem Arduino…
aber nix passiert.

Hier mal den Code den ich benutze, um Hilfe wäre ich echt dankbar, bin mit meinem Latein am Ende :frowning:

LG MARTIN

/*
Connect Bluetooth RX,TX to Arduino RX,TX
Requires NeoPixel Library
https://github.com/adafruit/Adafruit_NeoPixel
If you want to view via Serial Monitor and have your Arduino connect to BT module 
simultaneously use Software Serial to open a second port.
include <SoftwareSerial.h>
SoftwareSerial mySerial(3, 4); // RX, TX
*/



#include <Adafruit_NeoPixel.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(0, 1); // RX, TX

int red,green,blue;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(12, 6, NEO_GRB + NEO_KHZ800);

void setup() {
 strip.begin();
 strip.show(); // Initialize all pixels to 'off'

 // initialize serial:
 Serial.begin(9600);
 // mySerial.begin(9600);
}

void loop() {
 // if there's any serial available, read it:
 while (Serial.available() > 0) {

   // look for the next valid integer in the incoming serial stream:
   int red = Serial.parseInt(); 
   // do it again:
   int green = Serial.parseInt(); 
   // do it again:
   int blue = Serial.parseInt(); 

   // look for the newline. That's the end of your
   // sentence:
   // if (mySerial.read() == '\n') {
   if (Serial.read() == '\n') {
     // sends confirmation
     Serial.println("received");
     // constrain the values to 0 - 255
     red = constrain(red, 0, 255);
     green = constrain(green, 0, 255);
     blue = constrain(blue, 0, 255);
     // fill strip
     colorSet(strip.Color(red, green, blue), 0); 
     
     // send some data back
     mySerial.println("received:"+String(red)+","+String(green)+","+String(blue));
    
  }
}
}

// Fill strip with a color
void colorSet(uint32_t c, uint8_t wait) {
 for(uint16_t i=0; i<strip.numPixels(); i++) {
     strip.setPixelColor(i, c);
 }
  strip.show();
  delay(wait);
}

Achso der Ring ist auf Pin 6 .... ich sende mal noch Paar Fotos gleich.

Das hier habe ich auch probiert... hat auch nicht geklappt :frowning:

Ich weis das man √ľber die Arduino Software den Seriell Monitor benutzen kann... geht das irgendiwe das man dort sieht was der HC 05 sendet? also was f√ľr Daten er schickt?

psyconotics:
Ich habe folgendes Problem ...

Fasse den Code am besten in ‚ÄěCode-Tags‚Äú, damit er besser lesbar wird.

Wenn Du das tust, sieht Dein Code wie das hier aus.

Was mir beim schnellen Querlesen aufgefallen ist: Du verwendest die Pins 0 und 1 f√ľr SoftSerial. Vielleicht gibt es Probleme, weil die Pins 0 und 1 auch f√ľr die ‚Äěganz normale‚Äú serielle Kommunikation benutzt werden. Probiere mal andere Pins.

Gruß

Gregor

Hi gregorss ,

habe es in CODE gepackt :slight_smile: danke f√ľr die Info.

Ja das dachte ich auch.... weil SoftwareSerial ja Software Ports sind... der Nano aber Hardware Pins hat... die 0 und 1...

Kann ich das irgenwie umgehen die SoftwareSerial zu nutzen und NUR die Hardware Pins nutzen????

aber wenn ich die Pins auf 7 und 8 √§ndere passiert das selbe :frowning: die RX leuchtet wenn ich die App ber√ľhre aber nix passiert.

LG Martin

Schön, dass Du das mit den Code-Tags gemacht hast. Beim Lesen macht das ganz schön was aus.

psyconotics:
Ja das dachte ich auch.... weil SoftwareSerial ja Software Ports sind... der Nano aber Hardware Pins hat... die 0 und 1...
Kann ich das irgenwie umgehen die SoftwareSerial zu nutzen und NUR die Hardware Pins nutzen????

Was Deine weiter gehenden Fragen angeht: Bis auf den Nano kenne ich keine der Komponenten, die Du verwendest. Ich f√ľrchte, Du musst auf jemanden warten, der mehr Ahnung hat als ich (davon gibts viele :-). Falls mir noch etwas einf√§llt, bekommst Du auf jeden Fall Bescheid.

Gruß

Gregor

Hier noch ein Bild :

Ach was mir auch noch aufgefallen ist..... Wenn der Hc 05 an Pin 0 und 1 Angeschlossen ist, kann ich nichts auf den Nano Laden... dann kommen immer Fehler von Timeout... wenn ich dann Pin 0 und 1 entferne geht das Upload wieder.... soll das so sein?

psyconotics:
Ach was mir auch noch aufgefallen ist..... Wenn der Hc 05 an Pin 0 und 1 Angeschlossen ist, kann ich nichts auf den Nano Laden... dann kommen immer Fehler von Timeout... wenn ich dann Pin 0 und 1 entferne geht das Upload wieder.... soll das so sein?

Da d√ľrfte eben das st√∂ren, was ich oben geschrieben habe. Wegen solcher Sachen gucke ich, dass ich die Pins 0 und 1 f√ľr nichts Anderes verwende.

Uh ... shit ... was ist das wieder spät ... böses Ührchen ...

Gute Nacht

Gregor

So habe das jetzt mal auf Pin 7 und 8…

#include <Adafruit_NeoPixel.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 7); // RX, TX

int red,green,blue;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(12, 6, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'

  // initialize serial:
  Serial.begin(9600);
  // mySerial.begin(9600);
}

void loop() {
  // if there's any serial available, read it:
  while (Serial.available() > 0) {

    // look for the next valid integer in the incoming serial stream:
    int red = Serial.parseInt(); 
    // do it again:
    int green = Serial.parseInt(); 
    // do it again:
    int blue = Serial.parseInt(); 

    // look for the newline. That's the end of your
    // sentence:
    // if (mySerial.read() == '\n') {
    if (Serial.read() == '\n') {
      // sends confirmation
      Serial.println("received");
      // constrain the values to 0 - 255
      red = constrain(red, 0, 255);
      green = constrain(green, 0, 255);
      blue = constrain(blue, 0, 255);
      // fill strip
      colorSet(strip.Color(red, green, blue), 0); 
      
      // send some data back
      mySerial.println("received:"+String(red)+","+String(green)+","+String(blue));
     
   }
}
}

// Fill strip with a color
void colorSet(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, c);
  }
   strip.show();
   delay(wait);
}

Wenn ich jetzt aber die APP ber√ľhre blinkt nichts mehr auf dem Nano‚Ķ kein RX und keine TX LED

Aber ich kann wieder auf den NANO Uploaden ohne das BT Modul trennen zu m√ľssen

Du kannst dich nicht entscheiden ob du jetzt Serial oder SoftwareSerial (mySerial) verwenden willst

ich habe es jetzt auf SERIAL 0,1 umgestellt‚Ķ wenn ich die APP ber√ľhre blinkt RX wieder‚Ķ aber denn dennoch passiert nix‚Ķ der Ring leibt aus‚Ķ

#include <Adafruit_NeoPixel.h>


int red,green,blue;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(12, 6, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'

  // initialize serial:
  Serial.begin(9600);
  // mySerial.begin(9600);
}

void loop() {
  // if there's any serial available, read it:
  while (Serial.available() > 0) {

    // look for the next valid integer in the incoming serial stream:
    int red = Serial.parseInt(); 
    // do it again:
    int green = Serial.parseInt(); 
    // do it again:
    int blue = Serial.parseInt(); 

    // look for the newline. That's the end of your
    // sentence:
    // if (mySerial.read() == '\n') {
    if (Serial.read() == '\n') {
      // sends confirmation
      Serial.println("received");
      // constrain the values to 0 - 255
      red = constrain(red, 0, 255);
      green = constrain(green, 0, 255);
      blue = constrain(blue, 0, 255);
      // fill strip
      colorSet(strip.Color(red, green, blue), 0); 
      
      // send some data back
      Serial.println("received:"+String(red)+","+String(green)+","+String(blue));
     
   }
}
}

// Fill strip with a color
void colorSet(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, c);
  }
   strip.show();
   delay(wait);
}

:confused: :confused: :confused:

Ach ich versuche es mit diesen 2 APP :

https://play.google.com/store/apps/details?id=com.funkboxing.led_controller

ruhig bleiben.
Ich vermute, dass der Fehler in der Art der √úbertragung mit dem Bluetooth Teil liegt.
Bist du dir sicher, dass du sämtliche Übertragungs Parameter richtig eingestellt hast?
Also baud rate stop Bits und so weiter?
Als n√§chstes kommt die Frage, ob die App LF und CR richtig √ľbertr√§gt.
Du solltest es erstmal ohne Bluetooth Modul und mit dem seriellen Monitor der Arduino IDE versuchen.

Stefan

Warum ignorierst du, dass der HC05 Modul eine 3.3V Schnittstelle hat?

HC533v.png

Warum setzt du nicht mindestens einen Spannungsteiler mit Widerst√§nden f√ľr die Nano Tx Leitung ein?

Und bitte nicht die Antwort von Serenifly ignorieren. Du kommentierst das myserial.begun aus und verwendest oben im Code nur die Hardware-Serial...

Also, wenn ich mir das erste Bild in Post#1 anschaue, dann versucht der TO die 12 Neo-Pixel mit Strom vom Nano zu betreiben.
Dort w√ľrde ich mal zuerst ansetzen und eine geeignete Stromquelle f√ľr die Neo-Pixel verwenden.
Danach kann man die anderen Probleme angehen.

Whandall:
Warum ignorierst du, dass der HC05 Modul eine 3.3V Schnittstelle hat?

HC533v.png

Warum setzt du nicht mindestens einen Spannungsteiler mit Widerst√§nden f√ľr die Nano Tx Leitung ein?

Hi, ich ignoriere das nicht… den wo ich habe geht von 3.3 bis 7 V daher ist der an der 5V.

LG Martin

sth77:
Und bitte nicht die Antwort von Serenifly ignorieren. Du kommentierst das myserial.begun aus und verwendest oben im Code nur die Hardware-Serial…

Hi,

eben… ich habe sowohl Soft wie Hard probiert… beides gleiches Ergebniss… das RX blinkt aber nix passiert.

Hat sich erledigt, habe die Lösung selbst gefunden. Lag an den 3kOhm Wiedersänden.
Thread kann geschlossen werden.

Danke

psyconotics:
Hat sich erledigt, habe die Lösung selbst gefunden. Lag an den 3kOhm Wiedersänden.

An welchen 3K Widerständen?

Wo sind die auf deinen Bildern versteckt?