Проблема с Ethernet Shield и LCD экраном

Тема в разделе "Arduino & Shields", создана пользователем rushaks, 20 окт 2014.

  1. rushaks

    rushaks Нуб

    Добрый день форумчане!
    Пытаюсь сделать себе метеостанцию с 2-мя датчиками
    Железо :
    arduino uno
    ethernet shield w5100
    BMP085
    DHT22
    LCD экран 1602 (16x2).
    Проблема вот в чем : когда в коде присутствуют строки, связанные с работой ethernet shield то на дисплее появляются вместо данных с датчиков какой то мусор
    20141020_133836.jpg
    если же их закоментировать то данные на экране отображаются правильно
    20141020_153558.jpg
    Код ниже прикрепляю.
    Помогите пожалуйста разобраться
     

    Вложения:

    • kod.txt
      Размер файла:
      3,4 КБ
      Просмотров:
      662
    Последнее редактирование: 20 окт 2014
  2. acos

    acos Официальный гик Администратор

    Код (C):

    LiquidCrystal lcd(4, 5, 10, 11, 12, 13);
     
    проблема тут.
    Почему - написано в описании Ethernet Shield и Arduino Uno.
    Попробуйте переподключить дисплей на другие пины, и объявлять экран например так
    Код (C):

    LiquidCrystal lcd(2, 3, 5, 6, 7, 8);
     
     
  3. rushaks

    rushaks Нуб

    Большое человеческое спасибо :):):)
     
  4. funyfizik

    funyfizik Нерд

    Просто ради интереса, что это меняет?
     
  5. acos

    acos Официальный гик Администратор

    Ethernet shield использует для своей работы пины icsp (spi) и пин 4 в качестве cs. На arduino uno icsp объединены с пинами 10, 11,12 (или 11, 12, 13 не помню:)). Короче экран сидит на тех же пинах что эзернет. Отсюда и глюки
     
  6. Жорик

    Жорик Нуб

    Помогите пожалуйста с таким: Использую Arduino Mega, Ethernet шилд W5100 и LCD 16х2.
    Экран подключен так: LiquidCrystalRus lcd(45, 44, 43, 41, 39, 37). Как и в первом посте - при работе с эзернет экран ничего не отображает, стоит закомментировать Ethernet.begin(mac, ip);
    server.begin(); - все отображается. пример скетча вот:
    #include <SPI.h>
    #include <Ethernet.h>
    #include <AFMotor.h>


    #include <LiquidCrystalRus.h> // подключаем библиотеку
    LiquidCrystalRus lcd(45, 44, 43, 41, 39, 37); // инициализация библиотеки с перечнем задействованных выводов

    byte mac[] = { 0x00, 0x08, 0xCA, 0x01, 0x02, 0x03 };
    byte ip[] = {192,168,0,100};
    EthernetServer server(80);

    void setup() {

    // запускаем Ethernet соединение и сервер:
    Ethernet.begin(mac, ip);
    server.begin();
    Serial.begin(9600);
    pinMode(50, OUTPUT);
    analogWrite(50, 80); // устанавливаем ШИМ выход
    lcd.begin(16, 2); // устанавливаем кол-во столбцов и строк
    lcd.print(" * HOME SERVER *"); // печать сообщения на LCD
    }

    void loop() {
    lcd.setCursor(0, 1); // устанавливаем курсор в 0-ом столбце, 1 строка (начинается с 0)
    lcd.print("All OK");
    }
     
  7. огромное, нет, огромнейшее!!!!!!!!! спасибо, второй день возился а то уже с этим
     
    Последнее редактирование: 14 ноя 2017