Stránka 1 z 2

NodeMcu v3 (lolin) a displej tm1637

Napsal: 21 úno 2018, 21:58
od pirda
Caute,
at googlim jak googlim, tak nejsem schopen rozchodit vyse zminenou kombinaci.
Mam jednoduchy programek napr. z https://github.com/avishorp/TM1637/blob ... 37Test.ino
Na Lolinu jej nejsem schopen rozsvitit. Na Arduino UNO bez problemu.

Nemate nekdo podobnou zkusenost?

Kolega mne poradil, ze by mozna mohl pomoci convertor 3<->5V. Zakoupil jsem, propojil jsem a nic.

Dekuji za jakoukoliv radu (krom "pouzivej Arduino UNO") ;-)

Pirda

Re: NodeMcu v3 (lolin) a displej tm1637

Napsal: 22 úno 2018, 00:51
od SkullKeep
Bylo by dobré jsem napsat program, který se pokoušíte nahrát do Lolinu. Jestli není chyba v použití knihovny #include <Arduino.h> tam podle mne být nemusí. A máte špatně zapsané definice pinů v

Kód: Vybrat vše

// Module connection pins (Digital Pins)
#define CLK 2 // nutné změnit pro Lolin
#define DIO 3 // nutné změnit pro Lolin

Re: NodeMcu v3 (lolin) a displej tm1637

Napsal: 22 úno 2018, 11:03
od martinius96
Piny SDA a SCL sú pri NodeMCU vyvedené takto:
  • SDA: GPIO4 = D2
  • SCL: GPIO5 = D1
Podľa mňa je chyba tak ako písal kolega v zápise:

Kód: Vybrat vše

#define CLK 5
#define DIO 4 

Re: NodeMcu v3 (lolin) a displej tm1637

Napsal: 23 úno 2018, 14:51
od pirda
Jak budu doma, zkusim upravy a postnu sem program.
Diky

Re: NodeMcu v3 (lolin) a displej tm1637

Napsal: 23 úno 2018, 16:23
od pirda
Tak jsem to zkousel zapojit tak ci onak, PINy D1 a D2 i opacne. A nic. Zkousel jsem i zapojeni pres obousmerny konertor 3V - 5V (snad dobre zapojeny) a taky nic.

Kód: Vybrat vše

#include <Arduino.h>
#include <TM1637Display.h>

// Module connection pins (Digital Pins)
#define CLK 5  //D1
#define DIO 4  //D2

// The amount of time (in milliseconds) between tests
#define TEST_DELAY   2000

const uint8_t SEG_DONE[] = {
  SEG_B | SEG_C | SEG_D | SEG_E | SEG_G,           // d
  SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,   // O
  SEG_C | SEG_E | SEG_G,                           // n
  SEG_A | SEG_D | SEG_E | SEG_F | SEG_G            // E
  };

TM1637Display display(CLK, DIO);

void setup()
{
}

void loop()
{
  int k;
  uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
  display.setBrightness(0x0f);

  // All segments on
  display.setSegments(data);
  delay(TEST_DELAY);

  // Selectively set different digits
  data[0] = 0b01001001;
  data[1] = display.encodeDigit(1);
  data[2] = display.encodeDigit(2);
  data[3] = display.encodeDigit(3);

  for(k = 3; k >= 0; k--) {
  display.setSegments(data, 1, k);
  delay(TEST_DELAY);
  }

  display.setSegments(data+2, 2, 2);
  delay(TEST_DELAY);

  display.setSegments(data+2, 2, 1);
  delay(TEST_DELAY);

  display.setSegments(data+1, 3, 1);
  delay(TEST_DELAY);


  // Show decimal numbers with/without leading zeros
  bool lz = false;
  for (uint8_t z = 0; z < 2; z++) {
  for(k = 0; k < 10000; k += k*4 + 7) {
    display.showNumberDec(k, lz);
    delay(TEST_DELAY);
  }
  lz = true;
  }

  // Show decimal number whose length is smaller than 4
  for(k = 0; k < 4; k++)
  data[k] = 0;
  display.setSegments(data);

  // Run through all the dots
  for(k=0; k <= 4; k++) {
    display.showNumberDecEx(0, (0x80 >> k), true);
    delay(TEST_DELAY);
  }

  display.showNumberDec(153, false, 3, 1);
  delay(TEST_DELAY);
  display.showNumberDec(22, false, 2, 2);
  delay(TEST_DELAY);
  display.showNumberDec(0, true, 1, 3);
  delay(TEST_DELAY);
  display.showNumberDec(0, true, 1, 2);
  delay(TEST_DELAY);
  display.showNumberDec(0, true, 1, 1);
  delay(TEST_DELAY);
  display.showNumberDec(0, true, 1, 0);
  delay(TEST_DELAY);

  // Brightness Test
  for(k = 0; k < 4; k++)
  data[k] = 0xff;
  for(k = 0; k < 7; k++) {
    display.setBrightness(k);
    display.setSegments(data);
    delay(TEST_DELAY);
  }
  
  // On/Off test
  for(k = 0; k < 4; k++) {
    display.setBrightness(7, false);  // Turn off
    display.setSegments(data);
    delay(TEST_DELAY);
    display.setBrightness(7, true); // Turn on
    display.setSegments(data);
    delay(TEST_DELAY);  
  }

  // Done!
  display.setSegments(SEG_DONE);

  while(1);
}

Re: NodeMcu v3 (lolin) a displej tm1637

Napsal: 28 úno 2018, 20:29
od pirda
Vyzkousel jsem jak 5V tak 3V, na primo z NodeMcu, pres convertor 3-5V a stale nic.
S knihovnou Arduino.h i bez a nic.

Nejaky dalsi napad?

Jak presne by mel byt convertor zapojeny, pokud to musi jit pres nej?
Mam tento - https://arduino-shop.cz/arduino/1481-ii ... 57581.html
GND je propojeny i Low i High
Lolin jsem zapojil na Low stranu - Volty na LV a PIN D2 a D1 na LV1 a LV2
Displej jsem napojil na High stranu - Volty HV a HV1 a HV2 do displeje na CLK a DIO.

A furt nic ;-(
martinius96 píše:
22 úno 2018, 11:03
Piny SDA a SCL sú pri NodeMCU vyvedené takto:
  • SDA: GPIO4 = D2
  • SCL: GPIO5 = D1
Podľa mňa je chyba tak ako písal kolega v zápise:

Kód: Vybrat vše

#define CLK 5
#define DIO 4 

Re: NodeMcu v3 (lolin) a displej tm1637

Napsal: 28 úno 2018, 20:34
od martinius96
No a co tak uplne simple i2c scan?

Re: NodeMcu v3 (lolin) a displej tm1637

Napsal: 28 úno 2018, 20:53
od pirda
Jako zapojit lolin - prevodnik - displej nebo bez prevodniku a pak zkusir program jako je napr. tento?
https://playground.arduino.cc/Main/I2cScanner

Re: NodeMcu v3 (lolin) a displej tm1637

Napsal: 28 úno 2018, 21:57
od martinius96
Pripojte displej cez prevodnik s napájaním so všetkým a nahrajte ten kód, presne ten, ktorý ste poslali, či tá doska vidí na I2C zbernici nejaké zariadenie.

Re: NodeMcu v3 (lolin) a displej tm1637

Napsal: 28 úno 2018, 22:10
od jankop
martinius96 píše:
28 úno 2018, 21:57
Pripojte displej cez prevodnik s napájaním so všetkým a nahrajte ten kód, presne ten, ktorý ste poslali, či tá doska vidí na I2C zbernici nejaké zariadenie.
Proboha proč? Jak může vidět I2C, když tam žádná není?