Serielles Signal über Bluetooth als Text im MAX7219 darstellen

Hallo,

@Tommy er sendet das mit dem Handy da kommt doch sicher irgendein Protokoll an,

Mit welcher App machst Du das . Ich kenn mich da nicht aus.

Ich denke das macht mehr Sinn wenn er den Sender erst mal umbaut und jede sekunde einmal 1 sendet und dann einmal 0. Blink witout delay via blauzahn. :slight_smile:

Gruß Heinz

Wenn er die 2. Schleife richtig kopiert hat, kann die Ausgabe nicht so aussehen.
Solange bis da vernünftige Infos kommen, macht das Weiterraten keinen Sinn.

Gruß Tommy

fusinoco:
so sieht der Code gerade aus:

Und wie sieht die Ausgabe aus?

Gruß Tommy

Nein, mache es nicht mehr mit dem Handy. Die Auswertungen stammen jetzt zwischen dem Arduino Uno und dem Pro Mini, an dem der Senosor hängt. Je nachdem was gemessen wird, werden die besagten 0 oder 1 über Bluetooth gesendet. Also 2 BT-Module die sich selbst verbinden und kommunizieren...

Das mit dem Handy war aus Bequemlichkeit zum Testen.

====

andere Frage: Wie soll es denn aussehen? So? : Indicator 1 ... usw..

Kopiere einfach das, was an Serial raus kommt hier rein oder ist das zu schwer?

Gruß Tommy

Tommy, ich danke dir ja sehr für dein Engagement.. aber das ist die Ausgabe aus dem Seriellen Monitor. Etwas anderes kann ich doch gar nicht kopieren bzw. ausgeben?! oder liege ich jetzt falsch...

Wenn das bei Dir 010101 ergibt, dann ist Dir nicht mehr zu helfen.

 Serial.print(" 0x");
 Serial.println(indicator,HEX);

Wo ist da das " 0x"?

Langsam komme ich mir verklapst vor.

Gruß Tommy

:frowning:

An der Verkabelung kann es nicht liegen?

Warum es nicht dargestellt wird, kann ich leider nicht sagen.. Liegt es vielleicht am Uno, der nicht original ist?

Hallo,

@Tommy die äussere Schleife liest beim Eintritt das ersrte Zeichen weg ohne es anzuzeigen.

hab das Unnöige mal auskommentiert

void loop() {
  // Printing the text

//  if (Bluetooth.available()) {   // Checks whether data is comming from the serial port // 
// indicator =  Bluetooth.read();

    while (Bluetooth.available()) {   // Checks whether data is comming from the serial port
      indicator = Bluetooth.read();   // Starts reading the serial port, the first byte from the incoming 
      Serial.print(" 0x");
      Serial.println(indicator, HEX);
    }
//  }


//  if (indicator == '1') Serial.println("Frei");
//  else Serial.println("Besetzt");

}

Trotzdem muss er bei dem Code, den ich ihm gegeben habe 0xirgendwas raus kommen. Wenn er natürlich einen anderen Code baut, dann geht das halt schief.

Gruß Tommy

Tommy, du kannst mir glauben, dass ich das reinkopiert habe.. :frowning: Siehe ja vorheriger Post von mir..

Ich glaube, das Projekt ist dann wohl gescheitert.. Meine Kenntnisse reichen leider nicht, um dies selbst zu ende zu bringen... Nur Komisch, dass nicht mal der Sketch der sogar von dem Erfasser online gestellt wurde, bei mir nicht funktioniert..

Bis dahin allen ein Dankeschön, die sich an diesem Sonntag die Zeit für mich genommen haben.

Aufgeben ist nicht.
Hier nochmal der Loop, wie ihn der Rentner eingestellt hat und wie ich ihn auch gemeint habe:

void loop() {
    while (Bluetooth.available()) {   // Checks whether data is comming from the serial port
      indicator = Bluetooth.read();   // Starts reading the serial port, the first byte from the incoming
      Serial.print(" 0x");
      Serial.println(indicator, HEX);
    }
}

Es geht nur darum zu ermitteln, was Du nun genau sendest. Wenn wir das haben, schaffen wir den Rest auch noch.

Sendest Du jetzt mit Deinem Sender oder dem Handy? Das ist mir jetzt nicht ganz klar.

Gruß Tommy

Hallo Tommy,

danke dir!!

Also um es nochmal deutlich zu machen. Hier der Sendercode. Dieser läuft wie erwähnt momentan auf dem Pro Mini. Sollte aber eigentlich (eigentlich) auf das gleiche raus kommen..

#include <SoftwareSerial.h>

int eingang= A0; //Das Wort „eingang" steht jetzt für den Wert „A0" 
int LED = 7; //Das Wort „LED" steht jetzt für den Wert 7
int sensorWert = 0; //Variable für den Sensorwert mit 0 als Startwert

boolean an;

void setup(){

 Serial.begin(9600);  


 
}
 
void loop(){
 sensorWert = analogRead(A0);

   
  if (!an && sensorWert > 50+15) {
    an = true;
    Serial.write('1');
    // Sende 1
    digitalWrite(LED, HIGH);
  }
  if (an && sensorWert <=50-15) { 
    an = false;
    Serial.write ('0');
    // Sende 0
    digitalWrite(LED, LOW);
  }
}

Du includest SoftwareSerial, benutzt aber Serial. Wie hast Du denn Deinen Blauzahn angeschlossen?

Gruß Tommy

Also versorgt wird er mit 5V. LED wird eben mit Pin 7 gesteuert, braucht man ja nicht weiter eingehen, funktioniert ja..

Bei A0 ist der Sensor angeschlossen.

TX von PRO Mini geht auf RX Bluetooth
RX von PRO Mini geht auf TX Bluetooth

Sensor ist so wie hier quasi angeschlossen:

http://www.theorycircuit.com/photocell-ldr-sensor-with-arduino/

Du klemmst also das Bluetooth ab, wenn Du den Mini pro programmierst? Dann kannst Du die Zeile
#include <SoftwareSerial.h> löschen.

Dann zum Empfänger. Nimm erst mal den Loop, den ich Dir in #31 geschrieben habe, damit wir sehen, was ankommt.

Gruß Tommy

Hallo,

na ja sollte eigendlich klappen, ob aber wirklich was gesendet wird wissen wir nicht.

@Tommy gibts ne Handy app mit der man das prüfen könnte ? So ganz ohne alles ?

Gruß Heinz

Keine Ahnung, ich habe ein Handy, kein Smartphone.

Gruß Tommy

Ok, also der Sender hat jetzt keinen SoftwareSerial.h mehr. Habe ich gelöscht.

Am Empfänger gibt mir der Monitor aber wieder kein x0 aus.. sondern entweder 0 und 1. (Je nach dem, ob der Sensor bedeckt ist, oder nicht)...

Code ist folgender:

    /*
          8x8 LED Matrix MAX7219 Scrolling Text
              Android Control via Bluetooth
       by Dejan Nedelkovski, www.HowToMechatronics.com
       Based on the following library:
       GitHub | riyas-org/max7219  https://github.com/riyas-org/max7219
    */
    #include <MaxMatrix.h>
    #include <SoftwareSerial.h>
    #include <avr/pgmspace.h>
    PROGMEM const unsigned char CH[] = {
      3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space
      4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B
      4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F
      4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r
      4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e
      3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i
      4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s
      3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t
      3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z
      

    };
    int dIn = 11;   // DIN pin of MAX7219 module
    int clk = 13;   // CLK pin of MAX7219 module
    int cs = 10;    // CS pin of MAX7219 module
    int maxInUse = 4;    // Number of MAX7219's connected
    MaxMatrix m(dIn, cs, clk, maxInUse);
    SoftwareSerial Bluetooth(1, 0); // Bluetooth
    byte buffer[10];
    char incomebyte;
    char text[100] = " "; // Initial text message
    int count = 0;
    char indicator;
  
    void setup() {
      m.init(); // MAX7219 initialization
      Bluetooth.begin(9600); // Default communication rate of the Bluetooth module

    }
    void loop() {
      // Printing the text
      
      if (Bluetooth.available()) {   // Checks whether data is comming from the serial port
        indicator = Bluetooth.read();

while (Bluetooth.available()) {   // Checks whether data is comming from the serial port
        indicator = Bluetooth.read();   // Starts reading the serial port, the first byte from the incoming data
        Serial.print(" 0x");
        Serial.println(indicator,HEX);


      
if (indicator == '1') Serial.println("Frei");
else Serial.println("Besetzt");


}
      }}

Hallo,
Dann scheint das ja jetzt zu klappen , der Empfänger erkennt den Sensor vom Sender