Проблема подключения дисплея 16x2 через I2C

Тема в разделе "Arduino & Shields", создана пользователем Roman777, 24 ноя 2015.

Метки:
  1. Roman777

    Roman777 Нуб

    Имеется дисплей с синей подсветкой 16x2, через I2С от FUNDUINO осуществляется подключение к самой ARDUINO, теперь опишу пошагово что происходит:
    1) Заливаю скетч на плату, все работает исправно-дисплей проходит стартовую проверку засвечивая полностью каждый квадратик(область отображения букв)
    2) Затем после стартовой проверки на дисплее выводятся всего по одной букве в каждой строке, а должно выводиться целиком слово, уже неделю бьюсь над этой проблемой, никак не получается ее решить, может у вас будут какие советы по этому поводу…
    Товарищи, есть возможность помочь, в чем может быть проблема?
     
  2. Roman777

    Roman777 Нуб

    Scheme_FINAL.jpg
    Схема подключения
     
  3. Roman777

    Roman777 Нуб

    #include <SPI.h>
    #include <MFRC522.h> // это скачанная библиотека "RFID".
    #include <Servo.h>

    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>

    #define SS_PIN 10
    #define RST_PIN 9
    MFRC522 mfrc522(SS_PIN, RST_PIN); // объект MFRC522C

    Servo doorLock;

    LiquidCrystal_I2C lcd(0x27,16,2);
    /* Задаем адрес и размерность дисплея.
    При использовании LCD I2C модуля с дисплеем 20х04 ничего в коде изменять
    не требуется, cледует только задать правильную размерность */

    unsigned long uidDec, uidDecTemp; // для отображения номера карточки в десятичном формате

    //*************************************************************
    // массив 4 cветодиодов, для визуального контроля.
    //*************************************************************
    int ledPins[] = {
    2, 3, 4, 5
    };
    int i; // индекс, для массива светодиодов.

    int servoPin = 5;



    //______________!!!SETUP!!!__________________________________________________
    void setup() {
    Serial.begin(19200); // Установка соединения SERIAL
    Serial.println("Prilozhite kartu / Waiting for card...");
    SPI.begin(); // инициализация SPI.
    mfrc522.PCD_Init(); // инициализация MFRC522.

    //_________________LCD___________
    lcd.init(); // Инициализация lcd
    lcd.backlight(); // Включаем подсветку
    // Курсор находится в начале 1 строки
    lcd.print("Hello, world!"); // Выводим текст
    lcd.setCursor(0, 1); // Устанавливаем курсор в начало 2 строки
    lcd.print("Amperka"); // Выводим текст
    //______________LCD__________________________________________________

    // весь массив светодиодов делаем OUTPUT.
    for (i = 0; i <= 3; i++)
    {
    pinMode(ledPins, OUTPUT);
    }
    doorLock.attach(servoPin);
    }
    //_________________!!!LOOP!!!_______________________________________________
    void loop() {

    int temp=0;

    // поиск новой карточки.
    if ( ! mfrc522.PICC_IsNewCardPresent()) {
    return;
    }

    // выбор карточки
    if ( ! mfrc522.PICC_ReadCardSerial()) {
    return;
    }

    uidDec = 0;

    // Выдача серийного номера карточки.
    for (byte i = 0; i < mfrc522.uid.size; i++)
    {
    uidDecTemp = mfrc522.uid.uidByte;
    uidDec = uidDec * 256 + uidDecTemp;
    }
    Serial.println("Serijnyj nomer karty: ");
    Serial.println(uidDec);

    // начинаем сравнивать номер прочитанной корты, с записанным номером карты.
    if (uidDec == 31714510)
    {
    // если номер совпал включим светодиод.
    digitalWrite(ledPins[0], HIGH);
    // и отправим сообщение.
    Serial.println(" Roman");
    doorLock.write(0);
    delay(5000);
    doorLock.write(180);
    }


    else
    {
    // если номер карты не совпал, включим все светодиоды.
    for (i = 0; i <= 3; i++)digitalWrite(ledPins, HIGH);
    Serial.println("Neizvestnaja karta / unknown card");
    }

    Serial.println("=====================================");
    delay(1000);
    // выключаем все светодиоды.
    for (i = 0; i <= 3; i++)digitalWrite(ledPins, LOW);
    }
     
  4. Roman777

    Roman777 Нуб

    А цель подключения дисплея-вывести мониторинг порта на дисплей, то есть, что бы надпись: Prilozjite kartu выводилась на дисплей , а так же в случае распознавания выводила имя хозяина карты...
     
  5. Со стандартным примером из LiquidCrystal_I2C без всего лишнего нормально работает ?
     
  6. Roman777

    Roman777 Нуб

    Сейчас попробую без всех элементов...
     
  7. Roman777

    Roman777 Нуб

    Проверил только что, выводится все равно только одна буква
     

    Вложения:

    • IMG_1106.JPG
      IMG_1106.JPG
      Размер файла:
      526,6 КБ
      Просмотров:
      1.712
  8. Код из примера или Ваш ?
    Хорошо бы еще подтянуть SDA SCL через 10kom к +5v
    Дисплей исправен ?
     
  9. Roman777

    Roman777 Нуб

    Дисплей я думаю исправен, но мое суждение основывается только лишь на том, что когда все запускается-на дисплее загораются все квадраты-первоначальный тест так сказать-судя по этому тесту-сам дисплей работает хорошо..
    Сейчас попробую через сопротивления подключить
     
  10. Roman777

    Roman777 Нуб

    Код как мой, так и из примера
     
  11. Roman777

    Roman777 Нуб

    Друзья, проблема усугубилась, теперь как только я подключаю Arduino через USB, диод ON загорается и тут же плавно тухнет, неужели сгорела?
     
  12. Roman777

    Roman777 Нуб

    А нет, все снова отключил- ардуина работает)
     
  13. darkfroli4

    darkfroli4 Нуб

    Поставь Arduino IDE v1.0.5
    Была такая же проблема
     
  14. Если все правильно подключали, ничего сгореть не должно было.
     
  15. Значит не правильно подключили что то.
    Уходила в защиту.
     
  16. Roman777

    Roman777 Нуб

    Да, на этапе подключения дисплея она выключается, странно, там всего 4 провода-в 3 соснах как говорится
     
  17. У вас код такой ?
    Код (C++):
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>

    // Set the LCD address to 0x27 for a 16 chars and 2 line display
    LiquidCrystal_I2C lcd(0x27, 16, 2);

    void setup()
    {
        // initialize the LCD
        lcd.begin();

        // Turn on the blacklight and print a message.
        lcd.backlight();
        lcd.print("Hello, world!");
    }

    void loop()
    {
        // Do nothing here...
    }
     
  18. Roman777

    Roman777 Нуб

    Вы имеете в виду более прежнюю версию среды разработки скачать? У меня mac, и на нем 1.6.7 стоит IDE
     
  19. darkfroli4

    darkfroli4 Нуб

  20. Roman777

    Roman777 Нуб

    lcd.init(); // Инициализация lcd
    lcd.backlight(); // Включаем подсветку
    // Курсор находится в начале 1 строки
    lcd.print("Hello, world!"); // Выводим текст
    lcd.setCursor(0, 1); // Устанавливаем курсор в начало 2 строки
    lcd.print("Amperka"); // Выводим текст