Когда у вас в руках плата, но вы не знаете, работает она или нет, как проверить, работает она или нет?
Примечание : После комментария @Ricardo' к моему последнему сообщению, я размещаю это!
Подключите плату к USB-порту компьютера и убедитесь, что на плате горит зеленый светодиодный индикатор питания. Стандартные платы Arduino (Uno, Duemilanove и Mega) имеют зеленый светодиодный индикатор питания, расположенный рядом с переключателем сброса.
Оранжевый светодиод в центре платы (на рисунке ниже обозначен как "Pin 13 LED") должен мигать при включении и выключении питания платы (платы поставляются с завода с предустановленным программным обеспечением для мигания светодиода в качестве простой проверки работоспособности платы).
Если светодиод питания не горит при подключении платы к компьютеру, вероятно, плата не получает питание.
Мигающий светодиод (подключенный к цифровому выходу pin 13) управляется кодом, запущенным на плате (новые платы предварительно загружаются скетчем Blink). Если светодиод на выводе 13 мигает, скетч работает правильно, а значит, микросхема на плате исправна. Если зеленый светодиод питания горит, но светодиод pin 13 не мигает, это может означать, что на микросхеме отсутствует заводской код. Если вы используете нестандартную плату, она может не иметь встроенного светодиода на выводе 13, поэтому проверьте документацию на вашу плату.
Онлайн-руководства по началу работы с Arduino доступны на сайтах Windows, Mac OS X и Linux.
Если у вас есть USB-программатор, есть еще один способ проверить Arduino.
Подключите программатор к ICSP пинам Arduino и вызовите avrdude
с нужными параметрами, чтобы прочитать предохранители вашей Arduino.
avrdude -c programmer-id -p partno -P port
Для Arduino Uno, partno
- это m328p
. Programmer-id
зависит от используемого устройства. В моем случае (mySmartUSB light) поддерживается stk500v2
, а port
- /dev/ttyUSB0
. Здесь
avrdude -c stk500v2 -p m328p -P /dev/ttyUSB0
дает следующий результат
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e950f
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Плата UNO отвечает правильной подписью и готова к некоторым действиям :)
Мой USB-программатор поставляется с 6-проводным ленточным кабелем с разъемами 2x3 с обеих сторон. Как обычно, провод для контакта 1 помечен красным. Из-за выемки на разъеме 2x3 программатора кабель подходит только в одном направлении.
Если вы посмотрите на Arduino UNO, заголовок ICSP находится справа от кнопки сброса.
Распиновка выглядит следующим образом.
MISO 1 2 VCC SCK 3 4 MOSI СБРОС 5 6 GND
ПРИМЕЧАНИЕ Вывод 1 - левый верхний, отмечен белой точкой!
Если у вас есть другая, рабочая Uno, и обе имеют микроконтроллерные чипы с разъемами, вы можете использовать известную плату для программирования тестового скетча на чипе неизвестной платы, поместить его обратно на неизвестную плату и запустить его.
Мне нравится следующий (псевдокодированный) тестовый скетч для быстрой проверки моих собранных вручную плат; он так же удобен для проверки неизвестной платы, собранной на заводе. Это не исчерпывающий тест, он просто проверяет основные цифровые входы/выходы, последовательные входы/выходы, а также замыкания или размыкания:
forever,
for each digital I/O pin:
write high;
delay 100ms;
write low;
end;
write "Hello, World!\n" to serial output;
while serial character available,
write character to serial output;
end;
write "\n" to the serial output;
end;
Тестовый светодиод - светодиод с припаянным к нему резистором - подключенный между любым входом/выходом и землей должен мигать каждые 2 секунды. Если этого не происходит, возможно, этот вывод вышел из строя или имеет плохое соединение.
Два тестовых светодиода, подключенные к численно соседним выводам (они могут физически не находиться рядом друг с другом), должны мигать последовательно. Если они мигают вместе, это указывает на наличие короткого замыкания, возможно, паяного мостика, между ними.
Терминал должен выдавать "Hello World!" каждые две секунды. Если этого не происходит, возможно, вышел из строя этот контакт, кабель FTDI или встроенный чип USB/Serial.
Наберите что-нибудь на клавиатуре, и это должно повториться на последовательном терминале (если предыдущий тест прошел). Если этого не произошло, возможно, неисправен контакт, кабель FTDI или встроенная микросхема USB/Serial.