Подключение LCD Keypad Shield
- Войдите на сайт для отправки комментариев
Я новичек, вот помигал диодами, приобрел ЛСД шилд и застрял, пытался подклбчить по http://www.youtube.com/watch?v=JDoTn1sLxWQ&feature=channel&list=UL
Вот, собственной мой скетч
/* Проверка работы экрана, на экране должна быть надпись и тикать счетчик */ #include <LCD4Bit_mod.h> // как я понимаю, подключение библиотеки LCD4Bit_mod lcd = LCD4Bit_mod(2); // активация двух строк int count = 0; // назначаем переменную char outputCount[16]; // количество символов vold setup() { // собственно начало lcd.init(); //инициализация дисплея lcd.clear(); //очистка дисплея lcd.printIh("Displey Test"); // вывод фигни } void loop() { lcd.cursorTo(2,0); //указываем где печатать, второй ряд, нулевая строка itoa(count, outputCout,10); // че за фигня, пока не разобрался lcd.printIn(outputCount); //печать оутпута count++; // прибаление оутпута на 1 }
но при компиляции пишет ошибку
LCD4Bit_mod.cpp:29:57: error: WConstants.h: No such file or directory
LCD4Bit_mod.cpp: In member function 'void LCD4Bit_mod::pulseEnablePin()':
LCD4Bit_mod.cpp:57: error: 'LOW' was not declared in this scope
LCD4Bit_mod.cpp:57: error: 'digitalWrite' was not declared in this scope
LCD4Bit_mod.cpp:58: error: 'delayMicroseconds' was not declared in this scope
LCD4Bit_mod.cpp:60: error: 'HIGH' was not declared in this scope
LCD4Bit_mod.cpp:63: error: 'delay' was not declared in this scope
LCD4Bit_mod.cpp: In member function 'void LCD4Bit_mod::pushNibble(int)':
LCD4Bit_mod.cpp:72: error: 'digitalWrite' was not declared in this scope
LCD4Bit_mod.cpp: In member function 'void LCD4Bit_mod::commandWriteNibble(int)':
LCD4Bit_mod.cpp:98: error: 'LOW' was not declared in this scope
LCD4Bit_mod.cpp:98: error: 'digitalWrite' was not declared in this scope
LCD4Bit_mod.cpp: In member function 'void LCD4Bit_mod::commandWrite(int)':
LCD4Bit_mod.cpp:105: error: 'LOW' was not declared in this scope
LCD4Bit_mod.cpp:105: error: 'digitalWrite' was not declared in this scope
LCD4Bit_mod.cpp: In member function 'void LCD4Bit_mod::print(int)':
LCD4Bit_mod.cpp:117: error: 'HIGH' was not declared in this scope
LCD4Bit_mod.cpp:117: error: 'digitalWrite' was not declared in this scope
LCD4Bit_mod.cpp:118: error: 'LOW' was not declared in this scope
LCD4Bit_mod.cpp: In member function 'void LCD4Bit_mod::clear()':
LCD4Bit_mod.cpp:138: error: 'delay' was not declared in this scope
LCD4Bit_mod.cpp: In member function 'void LCD4Bit_mod::init()':
LCD4Bit_mod.cpp:145: error: 'OUTPUT' was not declared in this scope
LCD4Bit_mod.cpp:145: error: 'pinMode' was not declared in this scope
LCD4Bit_mod.cpp:153: error: 'delay' was not declared in this scope
LCD4Bit_mod.cpp:159: error: 'delayMicroseconds' was not declared in this scope
LCD4Bit_mod.cpp: In member function 'void LCD4Bit_mod::leftScroll(int, int)':
LCD4Bit_mod.cpp:224: error: 'delay' was not declared in this scope
как я понимаю, скетч совершенно неверный, много чего не обьявлено
Да, дисплей 16 на 2
Кто подключал данные шилды, отзовитесь пожалуйста
При чем здесь шилд и зачем кричать,
несовместимость библиотек у вас.
Если трудно что понять то берете вот эту строчку--- error: WConstants.h: No such file or directory
и вбиваете в Google..... эт вам на будующее.
как я понимаю, оно просит библиотеку WConstants.h
Щас попробую найти, хотя, я ее не обьявлял
Не, как я понял, В Arduino IDE версии 1.0, разработчики переименовали файл WProgram.h в Arduino.h, поэтому, чтобы старые библиотеки заработали в новой IDE — нужно просто открыть файлы библиотеки (.h и .cpp) и если в них встречается строчка
#include "WProgram.h"
, то заменить её на:
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
Обычно, это нужно делать только в заголовочном h-файле библиотеки.
Возможно, больше ничего делать не придётся и библиотека сразу заработает :)
не, не заработало(((
процес пошел, убираем
#include "WConstants.h"
и перед
extern "C" {
пишем
#include "arduino.h"
WConstants.h использовалась в старой версии, а нынче используется arduino.h
я так понимаю включение новой стандартной библиотеки
Да, я стал крутить стандартный HelloWorld из библиотеки LiquidCrystal
Во, новый прикол: HelloWorld:41: error: no matching function for call to 'LiquidCrystal::LiquidCrystal(int, int, int, int, int, int)'
Как я понимаю, не объявлены все переменные, в скетче
// include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
в библиотеке
int RS = 12;
int RW = 11;
int Enable = 2;
int DB[] = {3, 4, 5, 6, 7, 8, 9, 10};
как раз, разница в 6 значений
Блин, как бы не менял данные переменные и в библиотеке и в скетче, ошибка не меняется
А Вы где библиотеку качали? Я так понимаю бывают ее разновидности, и конструктор может отличаться количеством параметров. Похоже ошибка говорит, что должно быть другое количество параметров (не 6). Например, есть такая библитека от SeedStudio, там нужно 7 или 11 параметров для инициализации.
Справился с проблмой с помощью лома.... поставил предыдущую версию Ардуино, практически все скетчи заработали, щас буду в них разбираться
тут решаеться проблема:
http://arduino.ru/forum/programmirovanie/1-wire-i-arduino-oshibka-kompilyatsii