Здравствуйте! Мой обзор будет коротким, на этом ресурсе уже есть
подробный обзор на эту «железку» от товарища
Brother_Thief.
Для
одного проекта мне понадобился LCD Keypad Shield, он же дисплей 1602A с кнопками. Заказал у одного продавца сразу комплект Shield и Arduino UNO R3. Доставка заняла 20 дней с момента оплаты товара.
Скрин заказа:
Ни с одной платы не был смыт флюс, да и ладно, не в первый раз, наверное на это уже внимание никто не обращает. Сразу решил проверить — прошил, собрал, включил…
Скетч которым прошил
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup() {
// set up the LCD’s number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.setCursor(0,0);
lcd.print("LCD Key Shield");
lcd.setCursor(0,1);
lcd.print("Press Key:");
}
void loop() {
int x;
x = analogRead (0);
lcd.setCursor(10,1);
if (x < 60) {
lcd.print ("Right ");
}
else if (x < 200) {
lcd.print ("Up ");
}
else if (x < 400){
lcd.print ("Down ");
}
else if (x < 600){
lcd.print ("Left ");
}
else if (x < 800){
lcd.print ("Select");
}
}
Модуль не реагировал на нажатия кнопок, вот что было на дисплее:
При отключенном шилде от Arduino и подаче только лишь питания модуль вёл себя вполне адекватно — чистый экран. Если покрутить переменный резистор контрастности (он один на плате), то появлялись в верхней строке полноценные тестовые квадраты. Видимо Arduino — «труп». На всякий случай решил залить прошивку от
сигнализации из этого обзора и посмотреть на поведение платы. На моё удивление плата вела себя вполне адекватно. На просторах интернета был найден тестовый скетч для проверки выходов Arduino.
Скетч для тестирования выходов Arduino
#define FIRST_PIN 0 // первый вывод
#define LAST_PIN 19 // последний вывод
void Test1(byte pin)
{
if(pin < 10) Serial.print(" PIN: ");
else Serial.print(" PIN: ");
Serial.print(pin);
pinMode(pin, OUTPUT);
digitalWrite(pin, 0);
Serial.print(" LOW: ");
if(!digitalRead(pin)) Serial.print("OK ");
else Serial.print("FAIL");
digitalWrite(pin, 1);
Serial.print(" HIGH: ");
if(digitalRead(pin)) Serial.print("OK ");
else Serial.print("FAIL");
pinMode(pin, INPUT);
Serial.print(" PULL UP: ");
if(digitalRead(pin)) Serial.print("OK ");
else Serial.print("FAIL");
digitalWrite(pin, 0);
}
void Test2(byte pin)
{
Serial.print(" ");
pinMode(pin, OUTPUT);
digitalWrite(pin, 1);
delay(5);
if(!digitalRead(pin))Serial.println("SHORT");
else Serial.println("OK");
pinMode(pin, INPUT);
digitalWrite(pin, 0);
}
void setup() {
Serial.begin(9600);
Serial.println("Test of short circuit on GND or VCC and between pins:");
Serial.println();
for(byte i = FIRST_PIN; i <= LAST_PIN; i++)
{
for(byte j = FIRST_PIN; j <= LAST_PIN; j++)
{
pinMode(j, INPUT);
digitalWrite(j, 0);
}
Test1(i);
for(byte j = FIRST_PIN; j <= LAST_PIN; j++)
{
pinMode(j, OUTPUT);
digitalWrite(j, 0);
}
Test2(i);
}
for(byte j = FIRST_PIN; j <= LAST_PIN; j++)
{
pinMode(j, INPUT);
digitalWrite(j, 0);
}
}
void loop() {}
Результат нормального тестирования:
Test of short circuit on GND or VCC and between pins:
PIN: 0 LOW: FAIL HIGH: OK PULL UP: OK OK
PIN: 1 LOW: OK HIGH: FAIL PULL UP: FAIL SHORT
PIN: 2 LOW: OK HIGH: OK PULL UP: OK OK
PIN: 3 LOW: OK HIGH: OK PULL UP: OK OK
PIN: 4 LOW: OK HIGH: OK PULL UP: OK OK
PIN: 5 LOW: OK HIGH: OK PULL UP: OK OK
PIN: 6 LOW: OK HIGH: OK PULL UP: OK OK
PIN: 7 LOW: OK HIGH: OK PULL UP: OK OK
PIN: 8 LOW: OK HIGH: OK PULL UP: OK OK
PIN: 9 LOW: OK HIGH: OK PULL UP: OK OK
PIN: 10 LOW: OK HIGH: OK PULL UP: OK OK
PIN: 11 LOW: OK HIGH: OK PULL UP: OK OK
PIN: 12 LOW: OK HIGH: OK PULL UP: OK OK
PIN: 13 LOW: OK HIGH: OK PULL UP: OK OK
PIN: 14 LOW: OK HIGH: OK PULL UP: OK OK
PIN: 15 LOW: OK HIGH: OK PULL UP: OK OK
PIN: 16 LOW: OK HIGH: OK PULL UP: OK OK
PIN: 17 LOW: OK HIGH: OK PULL UP: OK OK
PIN: 18 LOW: OK HIGH: OK PULL UP: OK OK
PIN: 19 LOW: OK HIGH: OK PULL UP: OK OK
С Arduino всё хорошо, начал проверять шилд тестером и на моё удивление между выводами D5, D6, D7 было короткое замыкание. Как позже выяснилось все эти выводы были замкнуты с выводом GND. Просмотрел плату на наличие оловянных «соплей» — их нет, всё отлично. Значит сдох сам дисплей 1602A — ну что же, ждать ещё 20 дней нового модуля не было никакого желания, решил выпаивать. Выпаял, проверяю дисплей — он рабочий, как так-то?!
Беру плату с кнопками и проверяю её тестером — короткое замыкание на плате. Опять просматриваю плату — всё идеально, в голове уже закралась мысль что это многослойный текстолит, выпаял контактные «штырьки» проверил на наличие соплей — их нет, а КЗ есть.
На моё счастье из-за перегрева отвалилась одна контактная площадка и было решено убрать всю дорожку, пинцетом зацепил и начал тянуть, почти в конце пути дорожка «не захотела» легко отставать от текстолита и в этом месте было короткое замыкание,
плата оказалась не до фрезерована (не до травлена). На всех трёх дорожках был этот недостаток. На фото это место выделено. Плату я не щадил, все дорожки были удалены и заменены проводом МГТФ.
Проверяем… Бинго!
Всё работает, всё хорошо за исключением внешнего вида :)
Итог: шилд очень интересный и удобный для разных устройств,
к покупке рекомендую. Скорее всего у продавца начнутся проблемы с возвратами, хоть это и не его вина, но «попадает» именно он. Предположу что «кривая» вся партия. В свою очередь я спор открыл, и скорее всего покажу ему этот обзор, чтобы проверяли платы перед отправкой.
Всем добра! Возможно эта информация кому-то пригодится, спасибо за внимание.
С непротравом у китайцев встречался редко. Было дело на кастомных платах. Но там и дизайн был специфичный.
а зеленая маска хуже бы продавалась — без корпуса ж) черная дорого-богато)
здесь
Что то долго идут. Хочется уже опробовать.
Сначала вышел из положения перепаяв все кнопки на другие с длинным штоком и нахлобучив на них колпачки для удобства пальцев.
Потом решил «нахрена мне шилды, которые еще переделывать надо» и стал сам собирать аналоги с уже высокими кнопками.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.