Arduino и ПК: обмен данными

Автор: admin G+   Дата: 2 апреля 2011



Рано или поздно любой владелец Arduino понимает, что в своих Arduino проектах ему просто жизненно необходимо обмениваться с микроконтроллером информацией. Возникают ситуации, когда нужно вручную, управляя с ПК или ноутбука активировать ту или иную функцию в программе микроконтроллера.

Но давайте ближе к делу. Обмениваться данными с Arduino не так сложно, но вся загвоздка в том, что данные передаются посимвольно, а это очень плохо. В поисках этой проблемы пришлось провести достаточно долгое время, пока на хабрахабре не наткнулся на одну замечательную библиотеку. Автор реализовал в ней функцию приемки чисел, т.е. вы можете отправлять контроллеру числа, состоящие более, чем из одной цифры, и он все отработает корректно. Качайте библиотеку (ссылка), распаковывайте ее в hardwarelibraries, и переходим к практике.

Первым делом напишем скетч, и загрузим его в Arduino (Freeduino)

#include void setup() {

Serial.begin(9600);  // устанавливаем скорость порта

pinMode(9, OUTPUT); // устанавливаем 9 ногу как выход для динамика

} void loop()

{

long int Number; Serial.print("Enter number: ");

Number = SerialInput.InputNumber(); // ВВодим число Serial.print("Result = ");

Serial.println(Number * Number, DEC);

beep(500);

} void beep(unsigned char delayms){

analogWrite(9, 20); // значение должно находится между 0 и 255

// поэкспериментируйте для получения хорошего тона

delay(delayms); // пауза delayms мс

analogWrite(9, 0); // 0 - выключаем пьезо

delay(delayms); // пауза delayms мс

}

Что все это значит. Постарался код снабдить подробными комментариями, вроде все должно быть понятно. Данный скетч просит ввести вас любое число, после чего выдает его квадрат, и воспроизводит звуковой сигнал через подсоединенный к 9 пину пьезо-динамик.

И вот, самое интересное - пришло время пробовать. Для коммутации с контроллером я рекомендую использовать бесплатную программу putty. В настройках Connection type выберите Serial и вместо COM1 впишите корректный номер порта (можно подглядеть в среде программирования Arduino меню Tools->Serial Port). Нажимаем Open, и видим в консоли надпись Enter number, вводим любое число (в рамках разумного), жмем Enter, и видим результат.

console

Все, можно радоваться и прыгать от радости. Естественно все это можно улучшить, например сперва вывести отправить с контроллера в консоль менюшку, в которой подробно расписать команды.  Например вводите число 0 - включается светодиодная подсветка, нажимаете 1 - гаснет. Таким образом можете хоть 100500 команд засунуть, лишь бы хватило памяти микроконтроллера (которой так мало). А о том, как расширить доступную память поговорим в следующий раз.

UPD: часть кода порезал парсер движка, поэтому вот исходник [СКАЧАТЬ]


Запись имеет метки: ,

Посмотрите еще:

Если вам понравилась (или не понравилась) статья Arduino и ПК: обмен данными, пожалуйста выскажите свое мнение о ней. Вы можете обсудить эту статью на нашем форуме
Мы будем очень рады, если вы присоединитесь к нашему дружному сообществу! Ведь вместе мы сможем делиться разными советами, техниками и руководствами, и только объединившись мы сделаем этот мир чуточку светлее :)

Комментарии

  1. Пупкин Васек пишет:

    ЧОТКО ЗАЕБИСЬ СПАСИБО Я ВАЩЕ ТЕПЕРЬ В ШКОЛЕ ТАЩУ А МОИ ОДНОКЛАССНИКИ НЕТ АХАХАХАХА ЧТО ЗА ЛОХИ СПАСИБО АААААА



Оставить комментарий или два

До того, как вы отправите комментарий