Ардуино первые шаги: Гайд для новичков Arduino | AlexGyver

Содержание

Первая прошивка, ошибки, FAQ

Первая прошивка


Итак, разобрались со средой разработки, теперь можно загрузить прошивку. Рекомендую загрузить пустую прошивку, чтобы убедиться, что все драйвера установились и плата вообще прошивается. Также лучше делать это с новой или заведомо рабочей платой.

1. Плата подключается к компьютеру по USB, на ней должны замигать светодиоды. Если этого не произошло:

  • Неисправен USB кабель.
  • Неисправен USB порт компьютера.
  • Неисправен USB порт Arduino.
  • Попробуйте другой компьютер, чтобы исключить часть проблем из списка.
  • Попробуйте другую плату, чтобы исключить часть проблем из списка.
  • На плате Arduino сгорел диод по питанию USB.
  • Плата Arduino сгорела полностью из-за неправильного подключения питания или короткого замыкания

2. Компьютер издаст характерный сигнал подключения нового оборудования, а при первом подключении появится окошко “Установка нового оборудования”.

Если этого не произошло:

  • См. предыдущий список неисправностей.
  • Кабель должен быть data-кабелем, а не “зарядным”.
  • Кабель желательно втыкать напрямую в компьютер, а не через USB-хаб.
  • Не установлены драйверы для Arduino.

3. В списке портов (Arduino IDE/Инструменты/Порт) появится новый порт, отличный от COM1. Если этого не произошло:

  • См. предыдущий список неисправностей.
  • Некорректно установлен драйвер Ch441.
  • Если список портов вообще неактивен – драйвер Arduino установлен некорректно, вернитесь к установке
  • Возникла системная ошибка, обратитесь к знакомому компьютерщику

4. Выбираем свою плату. Если это Arduino Nano, выбираем в Инструменты\Плата\Arduino Nano. Если другая – выбираем другую. Нажимаем стрелочку в левом верхнем углу (загрузить прошивку). Да, загружаем пустую прошивку.

  • [Для Arduino Nano]
     В микроконтроллер китайских нанок зашит “старый” загрузчик, поэтому выбираем Инструменты\Процессор\ATmega328p (Old Bootloader).  Некоторые китайцы зашивают в свои платы новый загрузчик, поэтому если прошивка не загрузилась (загрузка идёт минуту и вылетает ошибка avrdude: stk500_getsync()) – попробуйте сменить пункт Процессор на ATmega328p.

Если появилась надпись “Загрузка завершена” – значит всё в порядке и можно прошивать другие скетчи. В любом случае на вашем пути встретятся другие два варианта событий, происходящих после нажатия на кнопку “Загрузка” – это ошибка компиляции и ошибка загрузки. Вот их давайте рассмотрим более подробно.

Ошибки компиляции


Возникает на этапе компиляции прошивки. Ошибки компиляции вызваны проблемами в коде прошивки.

  • В некоторых случаях ошибка возникает при наличии 
    кириллицы
     (русских букв) в пути к папке со скетчем. Решение: завести для скетчей отдельную папочку в корне диска с английским названием.
  • В чёрном окошке в самом низу Arduino IDE можно прочитать полный текст ошибки и понять, куда копать.
  • В скачанных с интернета готовых скетчах часто возникает ошибка с описанием название_файла.h no such file or directory. Это означает, что в скетче используется библиотека <название файла>, и нужно положить её в Program Files/Arduino/libraries/. Ко всем моим проектам всегда идёт папочка с использованными библиотеками, которые нужно установить. Также библиотеки всегда можно поискать в гугле по название файла.
  • При использовании каких-то особых библиотек, методов или функций, ошибкой может стать неправильно выбранная плата в “
    Инструменты/плата
    “. Пример: прошивки с библиотекой Mouse.h или Keyboard.h компилируются только для Leonardo и Micro.
  • Если прошивку пишете вы, то любые синтаксические ошибки в коде будут подсвечены, а снизу в чёрном окошке можно прочитать более детальное описание, в чём собственно косяк. Обычно указывается строка, в которой сделана ошибка, также эта строка подсвечивается красным.
  • Иногда причиной ошибки бывает слишком старая, или слишком новая версия Arduino IDE. Читайте комментарии разработчика скетча
  • Ошибка недостаточно свободного места возникает по вполне понятным причинам. Возможно поможет урок по оптимизации кода.

Частые ошибки в коде, приводящие к ошибке компиляции


  • expected ‘,’ or ‘;’ – пропущена запятая или точка запятой на предыдущей строке
  • stray ‘\320’ in program – русские символы в коде
  • expected unqualified-id before numeric constant – имя переменной не может начинаться с цифры
  • … was not declared in this scope – переменная или функция используется, но не объявлена. Компилятор не может её найти
  • redefinition of … – повторное объявление функции или переменной
  • storage size of … isn’t known – массив задан без указания размера

Ошибки загрузки


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

  • USB кабель, которым подключается Arduino, должен быть Data-кабелем, а не кабелем только для зарядки. Нужным нам кабелем подключаются к компьютеру плееры и смартфоны.
  • Причиной ошибки загрузки являются не установленные/криво установленные драйвера Ch440, если у вас китайская NANO.
  • Также будет ошибка avrdude: ser_open(): can’t open device, если не выбран COM порт, к которому подключена Arduino. Если кроме COM1 других портов нет – читай два пункта выше, либо попробуй другой USB порт, или вообще другой компьютер.
  • Большинство проблем при загрузке, вызванных “зависанием” ардуины или загрузчика, лечатся полным отключением ардуины от питания. Потом вставляем USB и по новой прошиваем.
  • Причиной ошибки загрузки может быть неправильно выбранная плата в “Инструменты/Плата”, а также неправильно выбранный процессор в “Инструменты/Процессор”.  Также в свежих версиях IDE нужно выбирать 
    ATmega328P (Old Bootloader)
     для китайских плат NANO.
  • Если у вас открыт монитор COM порта в другом окне Arduino IDE или плата общается через СОМ порт с другой программой (Ambibox, HWmonitor, SerialPortPlotter и т.д.), то вы получите ошибку загрузки, потому что порт занят. Отключитесь от порта или закройте другие окна и программы.
  • Если у вас задействованы пины RX или TX – отключите от них всё! По этим пинам Arduino общается с компьютером, в том числе для загрузки прошивки.
  • Если в описании ошибки встречается bootloader is not responding и not in sync, а все предыдущие пункты этого списка проверены – с вероятностью 95% сдох загрузчик. Второй неприятный исход – загрузчик “слетел”, и его можно прошить заново.

Предупреждения


Помимо ошибок, по причине которых проект вообще не загрузится в плату и не будет работать, есть ещё предупреждения, которые выводятся оранжевым текстом в чёрной области лога ошибок.

Предупреждения могут появиться даже тогда, когда выше лога ошибок появилась надпись “Загрузка завершена“. Это означает, что в прошивке нет критических ошибок, она скомпилировалась и загрузилась в плату. Что же тогда означают предупреждения? Чаще всего можно увидеть такие:

  • # Pragma message… – это просто сообщения, оставленные разработчиком проекта или библиотеки. Чаще всего номер версии и прочая информация.
  • Недостаточно памяти, программа может работать нестабильно – Чуть выше этого предупреждения обычно идёт информация о задействованной памяти. Память устройства можно добивать до 99%, ничего страшного не случится. Это флэш память и во время работы она не изменяется. А вот динамическую память желательно забивать не более 85-90%, иначе реально могут быть непонятные глюки в работе, так как память постоянно “бурлит” во время работы. 
    НО
    . Это зависит от скетча и в первую очередь от количества локальных переменных. Можно написать такой код, который будет стабильно работать при 99% занятой SRAM памяти. Так что ещё раз: это всего лишь предупреждение, а не ошибка.

FAQ


Завершая раздел Введение в Arduino поговорим о вопросах, которые очень часто возникают у новичков:

  • Ардуину можно прошить только один раз? Нет, несколько десятков тысяч раз, всё упирается в ресурс Flash памяти. А он довольно большой.
  • Как стереть/нужно ли стирать старую прошивку при загрузке новой? Память автоматически очищается при прошивке, старая прошивка автоматически удаляется.
  • Можно ли записать две прошивки, чтобы они работали вместе?
    Нет, при прошивке удаляются абсолютно все старые данные. Из двух прошивок нужно сделать одну, причём так, чтобы не было конфликтов. Подробнее в этом уроке.
  • Можно ли “вытащить” прошивку с уже прошитой Ардуины? Теоретически можно, но только в виде нечитаемого машинного кода, в который преобразуется прошивка на С++ при компиляции, т. е. вам это НИКАК не поможет, если вы не имеете диплом по низкоуровневому программированию. Подробнее в этом уроке.
    • Зачем это нужно? Например есть у нас прошитый девайс, и мы хотим его “клонировать”. В этом случае да, есть вариант сделать дамп прошивки и загрузить его в другую плату на таком же микроконтроллере.
    • Если есть желание почитать код – увы, прошивка считывается в виде бинарного машинного кода, превратить который обратно в читаемый Си-подобный код обычному человеку не под силу.
    • Вытащить прошивку, выражаясь более научно – сделать дамп прошивки, можно при помощи ISP программатора, об этом можно почитать здесь.
    • Снять дамп прошивки можно только в том случае, если разработчик не ограничил такую возможность, например записав лок-биты, запрещающие считывание Flash памяти, или вообще отключив SPI шину. Если же разработчик – вы, и есть желание максимально защитить своё устройство от копирования – гуглите про лок-биты и отключение SPI

Видео


Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!

Начало работы с Arduino: руководство для начинающих

Arduino — это платформа для прототипирования электроники с открытым исходным кодом, и она является одной из самых популярных в мире — за исключением, возможно, Raspberry Pi. Продав более 3 миллионов устройств (и многие другие в виде устройств-клонов сторонних производителей): чем они так хороши и что вы можете с ними сделать?

Что такое Ардуино?

Arduino основан на простом в использовании, гибком аппаратном и программном обеспечении. Он создан для художников, дизайнеров, инженеров, любителей и всех, кто хоть немного интересуется программируемой электроникой.

Arduino воспринимает окружающую среду, считывая данные с различных кнопок, компонентов и датчиков. Они могут воздействовать на окружающую среду, управляя светодиодами, двигателями, сервоприводами, реле и многим другим.

Проекты Arduino

могут быть автономными, или они могут взаимодействовать с программным обеспечением, работающим на компьютере (Processing — наиболее популярное программное обеспечение для этого). Они могут общаться с другими Arduino, Raspberry Pi, NodeMCU или почти с чем угодно. Убедитесь, что вы прочитали наше сравнение микроконтроллеров за 5 долларов для тщательного сравнения различий между этими микроконтроллерами.

Вы можете спросить, почему стоит выбрать Arduino? Arduino действительно упрощает процесс создания проекта программируемой электроники, что делает его отличной платформой для начинающих. Вы можете легко начать работать над ним, не имея опыта работы с электроникой. Существуют тысячи доступных руководств, и они различаются по сложности, поэтому вы можете быть уверены, что справитесь с задачей, как только освоите основы.

Помимо простоты Arduino, он еще и недорогой, кроссплатформенный и с открытым исходным кодом. Arduino Uno (самая популярная модель) основана на микроконтроллерах Atmel ATMEGA 16U2. Выпускается много разных моделей, которые различаются по размеру, мощности и техническим характеристикам, поэтому ознакомьтесь со всеми различиями в нашем руководстве по покупке.

Чертежи плат публикуются под лицензией Creative Commons, поэтому опытные любители и другие производители могут свободно создавать свои собственные версии Arduino, потенциально расширяя и улучшая их (или просто копируя, что приводит к распространению низкоуровневых стоимость плат Arduino, которые мы находим сегодня).

Что можно сделать с Arduino?

Arduino может делать невероятное количество вещей. Они являются мозгом выбора для большинства 3D-принтеров. Их низкая стоимость и простота использования означают, что тысячи производителей, дизайнеров, хакеров и создателей создали потрясающие проекты. Вот лишь некоторые из проектов Arduino, которые мы сделали здесь, в MakeUseOf:

  • Пользовательские кнопки быстрого доступа
  • Электронная матрица D20
  • Лазерная турель
  • Контроллер Midi
  • Ретро-игры с OLED-дисплеем
  • Контроллер светофора

Что внутри Arduino?

Несмотря на то, что доступно множество различных типов плат Arduino, в данном руководстве основное внимание уделяется модели Arduino Uno . Это самая популярная плата Arduino. Так что же заставляет эту штуку тикать? Вот характеристики:

  • Processor: 16 Mhz ATmega16U2
  • Flash memory: 32KB
  • Ram: 2KB
  • Operating Voltage: 5V
  • Input Voltage: 7-12V
  • Number of analog inputs: 6
  • Количество цифровых входов/выходов: 14 (6 из них с широтно-импульсной модуляцией — ШИМ )

Технические характеристики могут показаться ерундой по сравнению с вашим настольным компьютером, но помните, что Arduino – это встроенное устройство. , с гораздо меньшим количеством информации для обработки, чем ваш рабочий стол. Он более чем подходит для большинства проектов в области электроники.

Еще одна замечательная особенность Arduino — возможность использовать так называемые «шилды» или дополнительные платы. Хотя шилды не рассматриваются в этом руководстве, они представляют собой отличный способ расширить возможности и функциональность вашего Arduino.

Что вам понадобится для этого руководства

Ниже вы найдете список компонентов, которые вам понадобятся для этого руководства для начинающих. Все эти компоненты должны стоить менее 50 долларов. Этого списка должно быть достаточно, чтобы дать вам хорошее представление об основах электроники и иметь достаточно компонентов для создания некоторых довольно крутых проектов с использованием этого или любого другого руководства по Arduino. Если вы не хотите выбирать каждый компонент, вы можете вместо этого рассмотреть возможность приобретения стартового комплекта.

  • 1 x arduino uno
  • 1 X USB A-B Кабель A-B (то же самое, что и ваш принтер)
  • 1 x хвоста
  • 2 x Светодиоды
  • 1 X Photo Resistor
  • 1 x Tackile Switch
  • 1 x Piezo
  • 1 x Tackile Switch
  • 1 x hezo
  • 1 X. 1 резистор 220 Ом
  • 1 резистор 10 кОм
  • 1 резистор 1 кОм
  • 1 комплект перемычек

Обзор электрических компонентов

Давайте посмотрим, что представляют собой все эти компоненты, что они делают и как они выглядят.

Макет

Используемые для создания прототипов электронных схем, они служат временным средством соединения компонентов друг с другом. Макетные платы – это пластиковые блоки с отверстиями, в которые можно вставлять провода. Отверстия расположены рядами, группами по пять штук. Если вы хотите переставить цепь, вытащите провод или часть из отверстия и переместите его. Многие макетные платы содержат две или четыре группы отверстий, идущих по длине платы вдоль сторон, и все они соединены — обычно они предназначены для распределения питания и могут быть помечены красной и синей линией.

Макетные платы

отлично подходят для быстрого изготовления схем. Они могут стать очень грязными для большой цепи, а более дешевые модели могут быть заведомо ненадежными, поэтому стоит потратить немного больше денег на хороший.

Светодиоды

LED означает Light Emitting Diode . Они являются очень дешевым источником света и могут быть очень яркими, особенно когда они сгруппированы вместе. Их можно приобрести самых разных цветов, они не сильно нагреваются и служат долго. У вас могут быть светодиоды в телевизоре, на приборной панели автомобиля или в лампах Philips Hue.

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

Фоторезистор

Фоторезистор ( p hotocell или светозависимый резистор ) позволяет Arduino измерять изменения освещенности. Вы можете использовать это, чтобы включить компьютер, например, в дневное время.

Тактильный переключатель

Тактильный переключатель в основном представляет собой кнопку. Нажатие на нее замкнет цепь и (обычно) изменит напряжение с 0 В на + 5 В. Arduino может обнаружить это изменение и отреагировать соответствующим образом. Часто это мгновенное — это означает, что они «нажимаются» только тогда, когда ваш палец удерживает их. Как только вы отпустите кнопку, они вернутся в состояние по умолчанию («не нажато» или выключено).

Пьезодинамик

Пьезодинамик — это крошечный динамик, который воспроизводит звук из электрических сигналов. Они часто бывают резкими и жестяными и звучат совсем не так, как настоящий динамик. Тем не менее, они очень дешевы и просты в программировании. В нашей игре Buzz Wire Game он используется для воспроизведения музыкальной темы Monty Python «Flying Circus».

Резистор

Резистор ограничивает поток электричества. Это очень дешевые компоненты, и они являются одним из основных продуктов как любительских, так и профессиональных электронных схем. Они почти всегда необходимы для защиты компонентов от перегрузки. Они также необходимы для предотвращения короткого замыкания, если Arduino +5V подключается прямо к земле. Вкратце: очень удобно и абсолютно необходимо.

Провода-перемычки

Перемычки используются для создания временных соединений между компонентами на макетной плате.

Настройка Arduino

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

Установка программного пакета Arduino в Windows

Перейдите на веб-сайт Arduino и загрузите версию программного обеспечения Arduino, подходящую для вашей версии Windows. После загрузки следуйте инструкциям по установке Arduino 9. 0039 Интегрированная среда разработки (IDE).

Установка включает в себя драйверы, так что теоретически вы должны сразу приступить к работе. Если по какой-то причине это не удается, попробуйте выполнить следующие действия, чтобы установить драйверы вручную:

  • Подключите плату и подождите, пока Windows начнет процесс установки драйвера. Через несколько мгновений процесс потерпит неудачу, несмотря на все усилия.
  • Щелкните Меню «Пуск» > Панель управления .
  • Перейдите к Система и безопасность > Система . Когда откроется системное окно, откройте диспетчер устройств .
  • Под портами (COM и LPT) вы должны увидеть открытый порт с именем Arduino UNO (COMxx) .
  • Щелкните правой кнопкой мыши Arduino UNO (COMxx) > Обновить программное обеспечение драйвера .
  • Выберите Найдите на моем компьютере программное обеспечение драйвера .
  • Найдите и выберите файл драйвера Uno с именем ArduinoUNO.inf , расположенный в папке Drivers загрузки программного обеспечения Arduino.

Windows завершит установку драйвера оттуда.

Установка программного пакета Arduino в Mac OS

Загрузите программное обеспечение Arduino для Mac с веб-сайта Arduino. Извлеките содержимое файла .zip и запустите приложение. Вы можете скопировать его в папку с приложениями, но он будет нормально работать с рабочего стола , или 9.0039 загружает папок. Вам не нужно устанавливать никаких дополнительных драйверов для Arduino UNO.

Установка программного обеспечения Arduino на пакет Ubuntu/Linux

Установить gcc-avr и avr-libc :

 sudo apt-get установить gcc-avr avr-libc 

Если у вас еще нет openjdk-6-jre, установите и настройте его:

 sudo apt-get install openjdk-6-jre 
sudo update-alternatives --config java

Выберите правильный JRE , если у вас установлено более одного.

Перейдите на веб-сайт Arduino и загрузите программное обеспечение Arduino для Linux. Вы можете распаковать и запустить его с помощью следующей команды:

 tar xzvf arduino-x.x.x-linux64.tgz 
cd arduino-1.0.1
./arduino

Независимо от того, какую ОС вы используете, приведенные выше инструкции предполагают, что у вас есть оригинальная фирменная плата Arduino Uno. Если вы приобрели клон, вам почти наверняка потребуются сторонние драйверы, прежде чем плата будет распознана через USB.

Запуск программного обеспечения Arduino

Теперь, когда программное обеспечение установлено и Arduino настроена, давайте проверим, все ли работает. Проще всего это сделать с помощью примера приложения «Blink».

Откройте программное обеспечение Arduino, дважды щелкнув приложение Arduino ( ./arduino в Linux ). Убедитесь, что плата подключена к компьютеру, а затем откройте пример скетча LED blink : File > Examples > 1. Основы > Мигание . Вы должны увидеть код открытого приложения:

Чтобы загрузить этот код на Arduino, выберите в меню Tools > Board запись, соответствующую вашей модели — в данном случае Arduino Uno .

Выберите последовательное устройство вашей платы в меню Tools > Serial Port . В Windows это, скорее всего, будет COM3 или выше. На Mac или Linux это должно быть что-то с /dev/tty.usbmodem в нем.

Наконец, нажмите кнопку Загрузить в верхнем левом углу вашей среды. Подождите несколько секунд, и вы должны увидеть мигающие светодиоды RX и TX на Arduino. Если загрузка прошла успешно, в строке состояния появится сообщение «Загрузка завершена».

Через несколько секунд после завершения загрузки вы должны увидеть, что светодиод pin 13 на плате начинает мигать. Поздравляем! У вас есть Arduino и работает.

Начальные проекты

Теперь, когда вы знаете основы, давайте рассмотрим несколько проектов для начинающих.

Мигает светодиод

Ранее вы использовали пример кода Arduino для мигания встроенного светодиода. Этот проект будет мигать внешним светодиодом с помощью макетной платы. Вот схема:

Подключите длинную ножку светодиода (положительная ножка, называемая анодом ) к резистору 220 Ом , а затем к цифровому контакту 7 . Соедините короткую ногу (отрицательную ногу, называемую катод ) напрямую к заземлению (любой из портов Arduino с GND на нем, на ваш выбор). Это простая схема. Arduino может управлять этим выводом в цифровом виде. При включении контакта загорается светодиод, при выключении светодиод выключается. Резистор необходим для защиты светодиода от слишком большого тока — без него он сгорит.

Вот код, который вам нужен:

 Указанный язык: clike не существует.  
 Генерация кода не удалась!! 
'

Этот код делает несколько вещей:

void setup(): Это запускается Arduino один раз при каждом запуске. Здесь вы можете настроить переменные и все, что нужно вашему Arduino.

pinMode(7, OUTPUT): Это говорит Arduino использовать этот вывод в качестве выхода, без этой строки Arduino не будет знать, что делать с каждым выводом. Это нужно настроить только один раз для каждого контакта, и вам нужно настроить только контакты, которые вы собираетесь использовать.

void loop(): Любой код внутри этого цикла повторяется снова и снова, пока Arduino не выключится. Это может сделать большие проекты более сложными, но это прекрасно работает для простых проектов.

digitalWrite(7, HIGH): Используется для установки контакта HIGH или LOW ON или OFF . Так же, как выключатель света, когда контакт ВЫСОКИЙ, светодиод будет гореть. Когда контакт НИЗКИЙ, светодиод будет выключен. Внутри скобок вам нужно указать некоторую дополнительную информацию, чтобы это работало правильно. Дополнительная информация называется параметрами или аргументами.

Первый (7) — это номер контакта. Например, если вы подключили свой светодиод к другому контакту, вы должны изменить его с семи на другое число. Второй параметр должен быть HIGH или LOW , который указывает, должен ли светодиод включаться или выключаться.

delay(1000): Сообщает Arduino ждать указанное количество времени в миллисекундах. 1000 миллисекунд равны одной секунде, так что это заставит Arduino ждать одну секунду.

После включения светодиода на одну секунду Arduino запускает тот же код, только он выключает светодиод и ждет еще одну секунду. Как только этот процесс завершится, цикл запустится снова, и светодиод снова загорится.

Вызов: Попробуйте отрегулировать временную задержку между включением и выключением светодиода. Что вы наблюдаете? Что произойдет, если вы установите задержку на очень маленькое число, например, один или два? Можете ли вы изменить код и схему, чтобы мигать два светодиода ?

Добавление кнопки

Теперь, когда у вас есть работающий светодиод, давайте добавим кнопку в вашу схему:

Подсоедините кнопку так, чтобы она перемыкала канал в середине макетной платы. Подсоедините верхнюю правую ногу к контакту 4 . Подсоедините нижнюю правую ножку к резистору 10 кОм , а затем к заземлению . Подсоедините нижнюю левую ногу к 5V .

Вам может быть интересно, зачем простой кнопке нужен резистор. Это служит двум целям. это опустите резистор — он соединяет контакт с землей. Это гарантирует, что никакие ложные значения не будут обнаружены, и не позволит Arduino подумать, что вы нажали кнопку, когда вы этого не сделали. Второе назначение этого резистора — ограничитель тока. Без него 5V ушло бы прямо в землю, волшебный дым был бы выпущен, и ваш Arduino умер. Это известно как короткое замыкание, поэтому использование резистора предотвращает это.

Когда кнопка не нажата, Arduino определяет землю ( контакт 4 > резистор > заземление ). Когда вы нажимаете кнопку, 5V подключается к земле. Контакт 4 Arduino может обнаружить это изменение, так как контакт 4 теперь изменился с земли на 5 В;

Вот код:

 Указанный язык: clike не существует. 
 Генерация кода не удалась!! 
'

Этот код основан на том, что вы узнали в предыдущем разделе. Аппаратная кнопка, которую вы использовали, является мгновенным действием . Это означает, что он будет работать, только пока вы держите его нажатым. Альтернатива запирание действие. Это похоже на выключатели света или розетки: нажмите один раз, чтобы включить, нажмите еще раз, чтобы выключить. К счастью, защелкивающееся поведение можно реализовать в коде. Вот что делает дополнительный код:

логическое значение buttonOn = false: Эта переменная используется для хранения состояния кнопки — ON или OFF, HIGH или LOW. Ему присвоено значение по умолчанию false.

pinMode(4, INPUT): Подобно коду, используемому для светодиода, эта строка сообщает Arduino, что вы подключили вход (вашу кнопку) к контакту 4.

if(digitalRead(4)): Аналогично digitalWrite() , digitalRead() используется для чтения состояния контакта. Вам необходимо предоставить ему пин-код (4, для вашей кнопки).

После нажатия кнопки Arduino ждет 25 мс и снова проверяет кнопку. Это известно как программное устранение дребезга . Это гарантирует, что то, что Arduino считает нажатием кнопки, на самом деле было нажатием кнопки, а не шумом. Вам не нужно этого делать, и в большинстве случаев все будет работать нормально и без этого. Это скорее лучшая практика.

Если Arduino уверен, что вы действительно нажали кнопку, он изменяет значение переменной buttonOn . Это переключает состояние:

Значение ButtonOn равно true: Установлено значение false.

ButtonOn имеет значение false: Установлено значение true.

Наконец, светодиод выключается в соответствии с состоянием, сохраненным в buttonOn .

Датчик освещенности

Давайте перейдем к более сложному проекту. В этом проекте будет использоваться Светозависимый резистор (LDR) для измерения количества доступного света. Затем Arduino сообщит вашему компьютеру полезные сообщения о текущем уровне освещенности.

Вот схема:

Поскольку LDR — это тип резистора, не имеет значения, в каком направлении они расположены — у них нет полярности. Подключите 5V к одной стороне LDR. Подключите другую сторону к заземлению через резистор 1 кОм . Также подключите эту сторону к аналоговому входу 0 .

Этот резистор действует как подтягивающий резистор, как и в предыдущих проектах. Аналоговый вывод необходим, так как LDR являются аналоговыми устройствами, и эти выводы содержат специальную схему для точного считывания аналогового оборудования.

Вот код:

 Указанный язык: clike не существует. 
 Генерация кода не удалась!! 
'

Этот код делает несколько новых вещей:

Serial.begin(9600): Это сообщает Arduino, что вы хотите обмениваться данными по последовательному порту со скоростью 9600. Arduino подготовит для этого все необходимое. Скорость не так важна, но и Arduino, и компьютер должны использовать одну и ту же скорость.

AnalogRead(A0): Используется для чтения значения, поступающего из LDR. Более низкое значение означает, что доступно больше света.

Serial.println(): Используется для записи текста в последовательный интерфейс.

Простой оператор if отправляет различные строки (текст) на ваш компьютер в зависимости от доступного света.

Загрузите этот код и оставьте USB-кабель подключенным (именно так Arduino будет обмениваться данными и откуда будет поступать питание). Откройте последовательный монитор ( Верхний правый > Серийный монитор ). Вы должны видеть, что ваши сообщения поступают каждые 0,5 секунды.

Что вы наблюдаете? Что произойдет, если вы накроете LDR или посветите на него ярким светом? Можете ли вы изменить код для печати значения LDR через последовательный порт?

Пошумим

В этом проекте для создания звуков используется пьезодинамик. Вот схема:

Заметили что-нибудь знакомое? Эта схема почти точно такая же, как проект светодиода. Пьезоэлементы — это очень простые компоненты — они издают звук при подаче электрического сигнала. Подключите положительную ногу к цифровому контакту 9 через резистор 220 Ом . Соедините отрицательную ногу с землей .

Вот код, очень простой для этого проекта:

 Указанный язык: clike не существует. 
 Генерация кода не удалась!! 

Здесь только несколько новых функций кода:

тон(9, 1000): Заставляет пьезоэлемент издавать звук. Он принимает два аргумента. Первый — это контакт, который нужно использовать, а второй — частота тона.

noTone(9): Это останавливает воспроизведение звука на предоставленном контакте.

Попробуйте изменить этот код, чтобы получить другую частоту. Измените задержку на 1 мс — что вы заметили?

Куда идти Отсюда

Как видите, Arduino — это простой способ разобраться в электронике и программном обеспечении. Это один из лучших микроконтроллеров для начинающих. Надеюсь, вы видели, как легко создавать простые электронные проекты с помощью Arduino. Вы сможете создавать гораздо более сложные проекты, когда разберетесь с основными:

  • Создавайте рождественские световые украшения
  • Платы Arduino Shield для усиления вашего проекта
  • Создайте собственную игру в понг с помощью Arduino
  • Подключите Arduino к Интернету
  • Создайте систему домашней автоматизации с помощью Arduino

Какой Arduino у вас есть? Есть ли какие-нибудь забавные проекты, которые вы любите делать? Чтобы узнать больше, узнайте, как улучшить кодирование Arduino с помощью VS Code и PlatformIO.

Начало работы — Документация по Arduino-ESP32 2.0.2

О Arduino ESP32

Добро пожаловать в документацию по поддержке Arduino ESP32! Здесь вы найдете важную информацию о том, как использовать проект.

Сначала самое главное

Примечание

Прежде чем продолжить, мы должны четко понимать, что этот проект поддерживается Espressif Systems и сообществом. Каждый может внести свой вклад в этот проект.

ESP32 — это однокристальная система на кристалле Wi-Fi и Bluetooth с частотой 2,4 ГГц, разработанная Espressif Systems.

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

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

Серия ESP32 доступна в виде чипа или модуля.

Поддерживаемые SoC

Вот серия ESP32, поддерживаемая проектом Arduino-ESP32:

SoC

2

Стабильный

Развитие

Технический паспорт

ESP32

Да

Да

ЭСП32

ESP32-S2

Да

Да

ЭСП32-С2

ESP32-C3

Да

Да

ЭСП32-С3

ESP32-S3

Да

Да

ЭСП32-С3

Дополнительные сведения о платах разработки ESP32 см. в разделе «Платы».

Справочник по ядрам Arduino

Эта документация основана на ESP32, и мы не будем рассматривать общий API Arduino. Чтобы просмотреть справочную документацию Arduino, пожалуйста, подумайте о том, чтобы прочитать официальную документацию.

Официальная документация Arduino: Справочник по Arduino.

Поддерживаемые операционные системы

Окна

Linux

macOS

Поддерживаемые IDE

Вот список поддерживаемых IDE для интеграции поддержки Arduino ESP32.

Arduino IDE

Платформа ввода-вывода

Дополнительные сведения об установке поддержки Arduino ESP32 см. в Руководствах по установке.

Поддержка

Это открытый проект, поддерживаемый сообществом. Не стесняйтесь обращаться за помощью в одном из каналов сообщества.

Отчеты о проблемах

Прежде чем открывать новую проблему, прочтите это:

Обязательно найдите похожую проблему. Это позволяет избежать дублирования или создания шума в отчетах о проблемах GitHub. У нас также есть руководство по устранению неполадок, чтобы сэкономить ваше время на наиболее распространенных проблемах, о которых сообщают пользователи.

Подробнее о создании новой задачи см. в Шаблоне задачи.

Если у вас есть новая идея, см. Шаблон запроса функции.

Первые шаги

Вот первые шаги для запуска поддержки Arduino ESP32.

Чтобы установить Arduino-ESP32, см. специальный раздел в руководстве по установке. Мы рекомендуем вам установить его с помощью менеджера досок.

  • Как установить
    • Перед установкой
    • Установка с помощью Arduino IDE
    • Установка с помощью PlatformIO
    • Windows (ручная установка)
    • Линукс
    • macOS
  • Платы для разработки
    • Платы для разработки
    • Эспрессиф
    • Третья сторона
    • Спецификация
    • Ресурсы

Примеры

После установки цепочки инструментов в вашей среде вы сможете увидеть все специальные примеры для ESP32.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *