- fchao-Sinus-Wechselrichter AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: Anfängerfrage zu Arduino IDE und Node MCU

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    03.12.2018
    Beiträge
    14

    Anfängerfrage zu Arduino IDE und Node MCU

    Anzeige

    Praxistest und DIY Projekte
    Hallo Gemeinde.
    Ich bin mir sicher ihr könnt mir helfen.
    Ich nutze seit ein paar tagen den Arduino IDE (Version 1.8.7) um ein kleines Programm für ein D1 Mini (ESP8266MOD) von AZ Delivery zu erstellen.
    Es soll eine 32x64 LED Matrix angesteuert werden.
    Das klappt auch schon sehr gut allerdings nur wenn ich des D1 Mini per USB an meinem Rechner (Win10) angeschlossen habe und das Programm uploade.
    Dann werden die Informationen angezeigt.
    Jetzt bin ich davon ausgegangen dass wenn ich den D1 an eine andere Stromversorgung hänge dann wird das Programm direkt laufen.

    Leider ist dem nicht so..Es passiert irgendwie nix..
    Ich frag jetzt mal ganz naiv: Muss man das noch irgendwie definieren das es automatisch gestartet wird?


    Vielen Dank und Viele Grüße
    Michael

  2. #2
    HaWe
    Gast
    hallo,
    willkommen im Forum!
    Ohne Code kann man dir sicher nicht helfen, also bitte IMMER den fraglichen Code posten,
    und außerdem: um welche andere Stromversorgung handelt es sich?

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    03.12.2018
    Beiträge
    14
    Hallo.
    Sorry..das macht natürlich sinn.
    Ich nutze als alternativer Stromversorgung ein Labornetzteil mir 2 USB Ausgängen. Das sollte genug Power haben.
    Anbei mein Code:
    --------------------------

    #include <PxMatrix.h>
    #include "ESP8266WiFi.h"


    #ifdef ESP32

    #define P_LAT 22
    #define P_A 19
    #define P_B 23
    #define P_C 18
    #define P_D 5
    #define P_E 15
    #define P_OE 2
    hw_timer_t * timer = NULL;
    portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;

    #endif

    #ifdef ESP8266

    #include <Ticker.h>
    Ticker display_ticker;
    #define P_LAT 16
    #define P_A 5
    #define P_B 4
    #define P_C 15
    #define P_D 12
    #define P_E 0
    #define P_OE 2

    #endif
    // Pins for LED MATRIX

    uint8_t display_draw_time=0;

    //PxMATRIX display(32,16,P_LAT, P_OE,P_A,P_B,P_C);
    //PxMATRIX display(64,32,P_LAT, P_OE,P_A,P_B,P_C,P_D);
    PxMATRIX display(64,32,P_LAT, P_OE,P_A,P_B,P_C,P_D,P_E);
    //PxMATRIX display(128,32,P_LAT, P_OE,P_A,P_B,P_C,P_D,P_E);

    // Some standard colors
    uint16_t myRED = display.color565(255, 0, 0);
    uint16_t myGREEN = display.color565(0, 255, 0);
    uint16_t myBLUE = display.color565(0, 0, 255);
    uint16_t myWHITE = display.color565(255, 255, 255);
    uint16_t myYELLOW = display.color565(255, 255, 0);
    uint16_t myCYAN = display.color565(0, 255, 255);
    uint16_t myMAGENTA = display.color565(255, 0, 255);
    uint16_t myBLACK = display.color565(0, 0, 0);

    uint8_t ATop = 0;
    uint8_t ALeft = 0;
    uint8_t BTop = 0;
    uint8_t BLeft = 32;
    uint8_t CTop = 16;
    uint8_t CLeft = 0;
    uint8_t DTop = 16;
    uint8_t DLeft = 32;

    uint16_t myCOLORS[8]={myRED,myGREEN,myBLUE,myWHITE,myYELLOW,myCYAN,myM AGENTA,myBLACK};


    const char* ssid = "mySSID";
    const char* password = "myPASSWORD";

    WiFiServer wifiServer(80);

    #ifdef ESP8266
    // ISR for display refresh
    void display_updater()
    {
    display.display(display_draw_time);
    }
    #endif

    #ifdef ESP32
    void IRAM_ATTR display_updater(){
    // Increment the counter and set the time of ISR
    portENTER_CRITICAL_ISR(&timerMux);
    display.display(display_draw_time);
    portEXIT_CRITICAL_ISR(&timerMux);
    }
    #endif


    void display_update_enable(bool is_enable)
    {

    #ifdef ESP8266
    if (is_enable)
    display_ticker.attach(0.002, display_updater);
    else
    display_ticker.detach();
    #endif

    #ifdef ESP32
    if (is_enable)
    {
    timer = timerBegin(0, 80, true);
    timerAttachInterrupt(timer, &display_updater, true);
    timerAlarmWrite(timer, 2000, true);
    timerAlarmEnable(timer);
    }
    else
    {
    timerDetachInterrupt(timer);
    timerAlarmDisable(timer);
    }
    #endif


    }

    void aufteilung(uint8_t draw_time)
    {
    display.display(draw_time);
    display.clearDisplay();
    for (uint8_t x=0; x<64; x++){
    display.drawPixel(x, 15, myBLUE);
    display.drawPixel(x, 16, myBLUE);
    }
    for (uint8_t x=0; x<32; x++){
    display.drawPixel(31, x, myBLUE);
    display.drawPixel(32, x, myBLUE);
    }
    for (uint8_t x=0; x<32; x++){
    display.drawPixel(0, x, myBLUE);
    display.drawPixel(63, x, myBLUE);
    }
    for (uint8_t x=0; x<64; x++){
    display.drawPixel(x, 0, myBLUE);
    display.drawPixel(x, 31, myBLUE);
    }

    display_update_enable(true);
    display.setBrightness(255);
    yield();

    }
    void clearScore(String gruppe){
    uint8_t left =0;
    uint8_t top =0;
    if(gruppe == "A"){
    left = ALeft;
    top=ATop;
    }
    if(gruppe == "B"){
    left = BLeft;
    top=BTop;
    }
    if(gruppe == "C"){
    left = CLeft;
    top = CTop;
    }
    if(gruppe == "D"){
    left = DLeft;
    top = DTop;
    }
    uint8_t x = 0;
    uint8_t y = 0;
    for (x=(left+1); x<(left+31); x++){
    for (y=(top+1); y<(top+15); y++){
    display.drawPixel(x, y, myBLACK);
    }
    }
    display_update_enable(true);
    yield();
    }
    void displayScore(String gruppe, String punkte ){
    display.setTextSize(1);
    display.setTextColor(myRED);
    uint8_t left =0;
    uint8_t top =0;
    if(gruppe == "A"){
    left = ALeft;
    top=ATop;
    }
    if(gruppe == "B"){
    left = BLeft;
    top=BTop;
    }
    if(gruppe == "C"){
    left = CLeft;
    top = CTop;
    }
    if(gruppe == "D"){
    left = DLeft;
    top = DTop;
    }
    display.setCursor(left+3,top+4);
    display.print(gruppe);
    display.setTextColor(myWHITE);
    display.setCursor(left+3+8,top+4);
    display.print(punkte);
    display_update_enable(true);
    yield();
    }
    void displayIP(String ip){
    display.display(0);
    display.clearDisplay();
    display.setTextSize(1);
    display.setTextColor(myRED);
    display.setCursor(1,4);
    display.print("IP Adresse");
    display.setTextColor(myWHITE);
    display.setCursor(1,11);
    display.print(ip);
    display_update_enable(true);
    yield();
    }

    void setup() {
    Serial.begin(115200);
    delay(1000);
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting..");
    }

    Serial.print("Connected to WiFi. IP:");
    Serial.println(WiFi.localIP());

    wifiServer.begin();

    // Define your display layout here, e.g. 1/8 step
    display.begin(16);
    display.setFastUpdate(true);
    display_draw_time=0;
    displayIP(WiFi.localIP().toString());
    delay(5000);
    aufteilung(display_draw_time);
    displayScore("A", "___");
    displayScore("B", "___");
    displayScore("C", "___");
    displayScore("D", "___");
    delay(5000);
    clearScore("D");
    displayScore("D", "225");
    }

    void loop() {
    WiFiClient client = wifiServer.available();
    if (client) {
    while (client.connected()) {
    while (client.available()>0) {
    char c = client.read();
    Serial.write(c);
    }
    delay(10);
    }
    client.stop();
    Serial.println("Client disconnected");
    }
    }
    ---------------------

  4. #4
    HaWe
    Gast
    hallo,
    zu
    ein Labornetzteil mir 2 USB Ausgängen. Das sollte genug Power haben.
    wieviel A genau haben die USB Ausgänge? Daran könnte es theoretisch dennoch bereits liegen.
    Eventuell teste mal ein anderes Steckernetzteil mit mind. 2A.

    Zu deinem Code:
    der ist zu lang, um ihn zu testen und zu debuggen.
    Kürze ihn mal auf das Nötigste herunter und dann poste bitte den gekürzten, minimalen Code.

    Wenn du im erweiterten Editor bist, dann schließe ihn bitte auch in Code-Tags ein:
    Code markieren und dann im Editor-Kopf-Menü auf das
    #
    Zeichen klicken.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Mehr als 500mA kommen normal aus einem USB-Anschluss doch nicht raus oder doch? Wenn er zwei benutzen muss sind max. 1A bis 1.5A.
    Gibt es ein Datenblatt zu der "32x64 LED Matrix"? Wieviel Strom benötigt die?
    Vielleicht ist das D1 Mini mit der Versorgungsspannung falsch angeschlossen oder Spannung ist zu hoch (5V an 3.3V)... ?

    MfG

  6. #6
    HaWe
    Gast
    es funktioniert doch angeschlossen am PC-USB. Ich hatte aber selber schon Probleme mit zu schwachen externen USB-Stromquellen. Wer weiß, was das Netzteil hat.
    Falls niemand einen Fehler bereits im Code sieht: warten wir mal seine Antwort ab!

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    03.12.2018
    Beiträge
    14
    Hallo.
    Also der USB Ausgang hat lt. Spec 1.2A max.
    Die LED Matrix betreibe ich über den regelbaren Ausgang des Netzteils.
    Ich denke nicht das mein Code im generellen ein Problem hat, denn er läuft ja.
    Muss man irgendwo noch was einstellen damit mein Programm auf dem Flash des D1 Mini festgeschrieben wird oder so?
    Ich denke fast das dies das Problem sein könnte. Aber wie gesagt. Ich bin mir nicht sicher.

    Code:
    #include <PxMatrix.h>
    #include <ESP8266WiFi.h>
    #include <ESP8266WebServer.h>
    
    
    
    #ifdef ESP32
    
    #define P_LAT 22
    #define P_A 19
    #define P_B 23
    #define P_C 18
    #define P_D 5
    #define P_E 15
    #define P_OE 2
    hw_timer_t * timer = NULL;
    portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;
    
    #endif
    
    #ifdef ESP8266
    
    #include <Ticker.h>
    Ticker display_ticker;
    #define P_LAT 16
    #define P_A 5
    #define P_B 4
    #define P_C 15
    #define P_D 12
    #define P_E 0
    #define P_OE 2
    
    #endif
    // Pins for LED MATRIX
    uint8_t display_draw_time=0;
    
    
    PxMATRIX display(64,32,P_LAT, P_OE,P_A,P_B,P_C,P_D,P_E);
    
    // Some standard colors
    uint16_t myRED = display.color565(255, 0, 0);
    uint16_t myGREEN = display.color565(0, 255, 0);
    uint16_t myBLUE = display.color565(0, 0, 255);
    uint16_t myWHITE = display.color565(255, 255, 255);
    uint16_t myYELLOW = display.color565(255, 255, 0);
    uint16_t myCYAN = display.color565(0, 255, 255);
    uint16_t myMAGENTA = display.color565(255, 0, 255);
    uint16_t myBLACK = display.color565(0, 0, 0);
    
    uint8_t ATop = 0;
    uint8_t ALeft = 0;
    uint8_t BTop = 0;
    uint8_t BLeft = 32;
    uint8_t CTop = 16;
    uint8_t CLeft = 0;
    uint8_t DTop = 16;
    uint8_t DLeft = 32;
    
    uint16_t myCOLORS[8]={myRED,myGREEN,myBLUE,myWHITE,myYELLOW,myCYAN,myMAGENTA,myBLACK};
    
     
    const char* ssid = "mySSID";
    const char* password =  "myPassword";
     
    ESP8266WebServer server(80);   //instantiate server at port 80 (http port)
    
    #ifdef ESP8266
    // ISR for display refresh
    void display_updater(){
      display.display(display_draw_time);
    }
    #endif
    
    #ifdef ESP32
    void IRAM_ATTR display_updater(){
      // Increment the counter and set the time of ISR
      portENTER_CRITICAL_ISR(&timerMux);
      display.display(display_draw_time);
      portEXIT_CRITICAL_ISR(&timerMux);
    }
    #endif
    
    void display_update_enable(bool is_enable){
    
    #ifdef ESP8266
      if (is_enable)
        display_ticker.attach(0.002, display_updater);
      else
        display_ticker.detach();
    #endif
    
    #ifdef ESP32
      if (is_enable)  {
        timer = timerBegin(0, 80, true);
        timerAttachInterrupt(timer, &display_updater, true);
        timerAlarmWrite(timer, 2000, true);
        timerAlarmEnable(timer);
      }  else  {
        timerDetachInterrupt(timer);
        timerAlarmDisable(timer);
      }
    #endif
    
    }
    
    void displayIP(String ip){
      display.display(0);
      display.clearDisplay();
      display.setTextSize(1); 
      display.setTextColor(myRED);
      display.setCursor(1,4);
      display.print("IP Adresse");
      display.setTextColor(myWHITE);
      display.setCursor(1,11);
      display.print(ip);
      display_update_enable(true);
      yield();
    }
    
    void setup() {
      delay(1000);
     
    	WiFi.begin(ssid, password);
     
      while (WiFi.status() != WL_CONNECTED) {
        delay(1000);
        Serial.println("Connecting..");
      }
     
      Serial.print("Connected to WiFi. IP:");
      Serial.println(WiFi.localIP());
    
      server.begin();      
        
      // Define your display layout here, e.g. 1/8 step
      display.begin(16);
      display.setFastUpdate(true);
      display_draw_time=0;
      displayIP(WiFi.localIP().toString());
    
    }
    
    void loop() {
      server.handleClient();
    }

  8. #8
    HaWe
    Gast
    es hätte sein können, dass im Code irgendwo auf Serial() gewartet wird, das konnte ich aber nicht finden bisher.
    Meine ESP8266 funktionieren ohne weiters Hochladen von was auch immer, egal wo sie angeschlossen sind.

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    03.12.2018
    Beiträge
    14
    Darf ich frage welche du genau benutzt?

    Müssen die verwendeten Bibliotheken (z.B.: <PxMatrix.h>) auch mit hochgeladen werden oder passiert das automatisch?

  10. #10
    HaWe
    Gast
    alle libs (.h, .cpp) werden zusammen mit .ino von gpp automatisch mitcompiliert.
    Müsstest du irgendetwas extra hochladen, müsstest du es auch bereits im PC-USB Betrieb.
    Meine esps habe ich von Ebay
    zB https://www.ebay.de/itm/NodeMCU-V3-L...cAAOSwIphbPGZd

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Node mcu bauteil durchgebrannt - welches ist das?
    Von Tim4357657 im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 2
    Letzter Beitrag: 07.02.2018, 16:36
  2. Verkaufe AVR Art Net Node / DMX over Ethernet
    Von MichWuhr im Forum Kaufen, Verkaufen, Tauschen, Suchen
    Antworten: 0
    Letzter Beitrag: 05.08.2015, 10:23
  3. IoT-Edge-Node-Modul von Atmel
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 20.11.2014, 09:40
  4. IoT-Edge-Node-Modul von Atmel
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 19.11.2014, 23:50
  5. WRT-Node: Bastelplatine mit OpenWRT und WLAN
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 20.08.2014, 17:20

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen