Урок 1. Начало, мигание светодиодом


Как уже писалось в статье про создание робота Arduino собственными руками, начинаем наш первый урок.

1. Введение

Давайте обозначим элементы управления Arduino IDE

Итак, слева направо:

компиляция (оригинальное название — проверка) кода
— стоп (остановка монитора COM-порта)
— новый скетч
— открыть скетч
— сохранить скетч
загрузить скетч в микроконтроллер Arduino/Freeduino
монитор последовательного (COM) порта

Самые важные для нас – первая и две последние кнопки

Цикл разработки скетча для Arduino можно представить так:

Написание кода – компиляция – загрузка в МК. Кажется — всё просто. Попробуем снова загрузить Blink. Открываем тестовый скетч из Examples — Digital — Blink и нажимаем кнопку компиляции

Компиляция прошла без ошибок о чём нам и сообщают – «Done compiling»

Остаётся подключить нашу ардуину к питанию и COM-порту и нажать кнопку выгрузки скетча на МК. Во время выгрузки будут мигать светодиоды Rx и Тx – сигнализирующие приём и передачу сообщений через последовательный интерфейс ардуины. Если выгрузка прошла успешно – мы получим сообщение: «Done uploading»

Т.к. джампер на плате установлен в Autoreset enable плата сама перезагрузится, произойдёт заливка скетча, снова перезагрузка и через 10 секунд ардуина начнёт весело мигать светодиодом

Впрочем, светодиод даже не обязательно вставлять в разъём – на плате уже есть сигнальный светодиод, подключённый к 13-му цифровому порту ардуины через ограничительный резистор.

Используя провода, изготовленные из витой пары,

схему можно перенести на макетную плату.

А если всё делать по-честному и подключать светодиод через ограничительный резистор, то получится такая простейшая схема:

которая на макетной плате будет выглядеть так:

Теперь немножко переделаем скетч Blink т.о., чтобы плата сообщала нам через COM-порт когда светодиод горит, а когда нет. Для этого нужно добавить всего три строчки кода:

  1. int ledPin = 13
    ;                
  2.  
  3. void setup(
    )                   
  4. {
    
  5.   pinMode(ledPin, OUTPUT)
    ;      
  6.   Serial.begin
    (
    9600
    )
    ;     // инициализация работы с COM-портом
    
  7. }
    
  8.  
  9. void loop(
    )                     
  10. {
    
  11.   digitalWrite(ledPin, HIGH)
    ;   
  12.   Serial.print
    (
    "H"
    )
    ;      // светодиод горит – пишем H
    
  13.   delay(
    1000
    )
    ;                  
  14.   digitalWrite(ledPin, LOW)
    ;    
  15.   Serial.println
    (
    "L"
    )
    ;    // светодиод погасили – пишем L
    
  16.   delay(
    1000
    )
    ;                  
  17. }
    

Компилируем и загружаем скетч в МК.

Светодиод мигает, а сообщения от платы мы можем увидеть через монитор последовательного порта.

Ура! Работает. Сообщения из последовательного порта можно смотреть любой терминальной программой, например tutty:

выбираем наш COM-порт и любуемся:

Но что это – при любой новой попытке просмотреть сообщения COM-порта наша плата перезагружается! Всё дело в джампере Autoreset enable, который так удобен при загрузке новых скетчей. Если джампер снять, то теперь каждое новое подключение к последовательному порту не будет вызывать перезагрузку ардуины, но новые скетчи придётся загружать после ручного нажатия на кнопку Reset, расположенную на плате.

Источник: 

robocraft.ru