не определяется адрес Дисплея по шине i2C

Тема в разделе "Arduino & Shields", создана пользователем Дмитрий_71, 15 ноя 2018.

  1. Доброго времени суток. Имеется китайский клон ардуинки на АТ328. Не получается определить адрес дисплея по I2C. Скетч загружается в ардуинку без проблем,но при сканирование шины никако действия не происходит! программа вроде как сканирует шину, но информации никакой не выдает ((висит).Пробовал подключать другой дисплей, результат тот же,брал другой комп- результат не изменился! это Подскажите это неисправность шины на плате или есть варианты где еще поискать? Цифровые порты работают исправно, програмки загружаются плата работает, а вот с I2C вышла проблемка.Спасибо
     
  2. parovoZZ

    parovoZZ Гуру

    Мы сейчас потрем зеркальный шар и погадаем на кофейной гуще! Ждите ответа от великаго мага!
     
  3. DetSimen

    DetSimen Guest

    без схемы разговора не будет
     
  4. так схема стандартная подключения дисплея 16х2 там всего 4 провода! 5 вольт питание да SCL -A5(аналоговый вход на ардуинке) и SDA - A4(ардуинка) вообщем то вся схема! )))
     
  5. DetSimen

    DetSimen Guest

    тогда, что говорит I2С сканер?
     
  6. Onkel

    Onkel Гуру

    Проверьте, не биты ли порты I2C.Напряжения хватает?
     
  7. питания то точно хватает, а вот как проверить порты I2C я не знаю, сканера портов у меня нет
    Вернее есть сканер в проге FLProg на нем то и виснит!
     
    Последнее редактирование: 15 ноя 2018
  8. DetSimen

    DetSimen Guest

    в примерочных скетчах к ардуино есть i2c сканер. просто залей его в IDE и запусти
     
  9. Airbus

    Airbus Радиохулиган Модератор

    Сначала подключим правильно SDA-A4 SCL-A5 не иначе!
    Протом загрузим Скетч
    Код (C++):
    // i2c_scanner
    //SDA-A4
    //SCL-A5 не иначе!
    #include <Wire.h>
    void setup()
    {
    Wire.begin();
    Serial.begin(9600);
    Serial.println("\nI2C Scanner");
    }
    void loop()
    {
    byte error, address;
    int nDevices;

    Serial.println("Scanning...");
    nDevices = 0;
    for(address = 1; address < 127; address++ )
    {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
    if (error == 0)
    {
    Serial.print("I2C device found at address 0x");
    if (address<16)
    Serial.print("0");
    Serial.print(address,HEX);
    Serial.println(" !");
    nDevices++;
    }
    else if (error==4)
    {
    Serial.print("Unknow error at address 0x");
    if (address<16)
    Serial.print("0");
    Serial.println(address,HEX);
    }
    }
    if (nDevices == 0)
    Serial.println("No I2C devices found\n");
    else
    Serial.println("done\n");

    delay(5000); // wait 5 seconds for next scan
    }
     
    Открываем Порт смотрим
     
    DetSimen нравится это.
  10. Airbus

    Airbus Радиохулиган Модератор

    Ай Шайтан опередил!
     
    DetSimen нравится это.
  11. DetSimen

    DetSimen Guest

    я не шайтан, я кот. и у меня короче код, только самое необходимое.
    ТС, используй код от Самалёта, там информации больше. Я свой удалю
     
    Последнее редактирование модератором: 15 ноя 2018
  12. Airbus

    Airbus Радиохулиган Модератор

    Ты не кот а Кросавчег!А код зачем удалил?
     
    Последнее редактирование: 15 ноя 2018
  13. parovoZZ

    parovoZZ Гуру

    да, да, да, конечно))) Где подтягивающие резисторы?
     
  14. DetSimen

    DetSimen Guest

    У твоего диагностики больше.
     
  15. DetSimen

    DetSimen Guest

    Если это стандартно-китайский i2c 1602, то у нево унутре подтяшки есть.
     
  16. залил,и тишина! )))
     
  17. DetSimen

    DetSimen Guest

    а в сериале чо?
     
  18. Airbus

    Airbus Радиохулиган Модератор

    Подключил правильно?Дисплей рабочий?
     
  19. подключил правильно, дисплей светится
     
  20. а это где посмотреть? вы уж простите новичка
    во вкладке "монитор порта" - чисто
     
    Последнее редактирование: 15 ноя 2018