• Программирование Arduino с помощью ArduBloсk на примере робота, движущегося по полосе. Программирование Arduino

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

    Это наиболее простой и недорогой вариант для начинающих, любителей и профессионалов. Процесс программирования проходит на языке Processing/Wiring, который осваивается быстро и легко и в основе которого лежит язык C++, а благодаря это сделать очень легко. Давайте рассмотрим, что такое Arduino, чем полезна для начинающих, её возможности и особенности.

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

    Основой конструктора служит плата ввода-вывода (аппаратная часть), а также программная часть. Программное обеспечение конструктора на основе Ардуино представлено интегрированной средой разработки .

    Внешне сама среда выглядит так:

    Программная часть Ардуино разработана таким образом, чтобы справиться с ней мог даже начинающий пользователь, не имеющий представления о программировании. Дополнительным фактором успеха в использовании микроконтроллера стала возможность работать с макетной платой, когда к контроллеру подключаются необходимые детали (резисторы, диоды, транзисторы и т.п.) без необходимости в пайке.

    Большая часть плат Arduino имеют подключение через USB кабель. Подобное соединение позволяет обеспечить плату питанием и загрузить скетчи, т.е. мини-программы. Процесс программирования так же является предельно простым. Вначале пользователь использует редактор кода IDE для создания необходимой программы, затем она загружается при помощи одного клика в Ардуино.

    Как купить Arduino?

    Плата и многие детали Ардуино производится в Италии , поэтому оригинальные составляющие отличаются достаточно высокой стоимостью. Но существуют отдельные компоненты конструктора или наборы, так называемые кит-наборы, которые выпускается по итальянской аналогии, однако по более доступным ценам.

    Купить аналог можно на отечественном рынке или, к примеру, заказать из Китая. Многие знают про сайт АлиЭкспресс, например. Но начинающим свое знакомство с Ардуино лучше свою первую плату заказать в российском интернет-магазине. Со временем можно перейти на покупку плат и деталей в Китае. Срок доставки из этой страны составит от двух недель до месяца, а, например, стоимость большого кит-набора будет не более 60-70 долларов .

    Стандартные наборы включают в себя как правило следующие детали:

    • макетная плата;
    • светодиоды;
    • резисторы;
    • батареи 9В;
    • регуляторы напряжения;
    • кнопки;
    • перемычки;
    • матричная клавиатура;
    • платы расширения;
    • конденсаторы.

    Нужно ли знать программирование?

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

    После того как программа составлена она загружается (прошивается) на плату. Ардуино в этом случае имеет неоспоримое преимущество – для программирования в большинстве случаев используется USB-кабель. Сразу после загрузки программа готова выполнять различные команды.

    Начинающим работать с Arduino нужно знать две ключевые функции:

    • setup() – используется один раз при включении платы, применяется для инициализации настроек;
    • loop() – используется постоянно, является завершающим этапом настройки setup.

    Пример записи функции setup() :

    Void setup() { Serial.begin(9600); // Открываем serial соединение pinMode(9, INPUT); // Назначаем 9 пин входом pinMode(13, OUTPUT); // Назначаем 13 пин выходом }

    Функция setup() выполняется в самом начале и только 1 раз сразу после включения или перезагрузки вашего устройства.

    Функция loop() выполняется после функции setup(). Loop переводится как петля, или цикл. Функция будет выполняться снова и снова. Так микроконтроллер ATmega328 (большинстве плат Arduino содержат именно его), будет выполнять функцию loop около 10 000 раз в секунду.

    Также вы будете сталкиваться с дополнительными функциями:

    • pinMode – режим ввода и вывода информации;
    • analogRead – позволяет считывать возникающее аналоговое напряжение на выводе;
    • analogWrite – запись аналогового напряжения в выходной вывод;
    • digitalRead – позволяет считывать значение цифрового вывода;
    • digitalWrite – позволяет задавать значение цифрового вывода на низком или высоком уровне;
    • Serial.print – переводит данные о проекте в удобно читаемый текст.

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

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

    Как настроить Ардуино?

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

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

    Алгоритм классической настройки программы Arduino выглядит так:

    • установка IDE, которую можно загрузить ниже или или с сайта производителя ;
    • установка программного обеспечения на используемый ПК;
    • запуск файла Arduino;
    • вписывание в окно кода разработанную программу и перенос ее на плату (используется USB кабель);
    • в разделе IDE необходимо выбрать тип конструктора, который будет использоваться. Сделать это можно в окне «инструменты» - «платы»;
    • проверяете код и жмете «Дальше», после чего начнется загрузка в Arduino.
    Версия Windows MacOS Linux
    1.6.5 Zip
    Installer
    Installer 32 bits
    64 bits
    1.8.2 Zip
    Installer
    Installer 32 bits
    64 bits
    ARM
    1.8.5 Zip
    Installer
    App
    Installer 32 bits
    64 bits
    ARM

    Набиваем руку

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

    Самый простой проект, который вы можете сделать - заставить светодиод, который расположен на плате Ардуино напротив порта, мигал каждую секунду.

    Для этого необходимо:

    • подключить конструктор к ПК,
    • открыть программу, в разделе «сервис» ищем блок «последовательный порт»
    • выбираем необходимый интервал
    • после чего необходимо добавить код, который есть в Arduino IDE в разделе "Примеры".

    Первыми проектами в Ардуино для начинающих могут стать:

    • мигающий светодиод;
    • подключение и управление датчиком температуры;
    • подключение и управление датчиком движения;
    • подключение фоторезистора;
    • управление сервоприводом.

    Первый проект

    Вот мы и дошли до нашего первого проекта. Давайте соединим Ардуино, светодиод и кнопку. Этот проект отлично подойдет начинающим.

    Схема у нас будет такая:

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

    // пины подключенных устройств int switchPin = 8; int ledPin = 11; // переменные для хранения состояния кнопки и светодиода boolean lastButton = LOW; boolean currentButton = LOW; boolean ledOn = false; void setup() { pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); } // функция для подавления дребезга boolean debounse(boolean last) { boolean current = digitalRead(switchPin); if(last != current) { delay(5); current = digitalRead(switchPin); } return current; } void loop() { currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) { ledOn = !ledOn; } lastButton = currentButton; digitalWrite(ledPin, ledOn); }

    Вы могли заметить функцию debounse, о которой мы еще не писали. Она нужна для .

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

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

    Данный раздел посвящен книгам из мира Arduino. Для новичков и профессионалов.

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

    Программы для чтения книг:

    • Книги формата PDF: Adobe Acrobat Reader или PDF Reader .
    • Книги формата DJVU: или Djvu Reader .

    Практическая энциклопедия Arduino

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

    Электроника. Твой первый квадрокоптер. Теория и практика

    Детально изложены практические аспекты самостоятельного изготовления и эксплуатации квадрокоптеров. Рассмотрены все этапы: от выбора конструкционных материалов и подбора компонентов с минимизацией финансовых затрат до настройки программного обеспечения и ремонта после аварии. Уделено внимание ошибкам, которые часто совершают начинающие авиамоделисты. В доступной форме даны теоретические основы полета мультироторных систем и базовые понятия работы со средой Arduino IDE. Приведено краткое описание устройства и принципа работы систем GPS и Глонасс, а также современных импульсных источников бортового питания и литий-полимерных батарей. Подробно изложен принцип работы и процесс настройки систем OSD, телеметрии, беспроводного канала Bluetooth и популярных навигационных модулей GPS Ublox. Рассказано об устройстве и принципах работы интегральных сенсоров и полетного контроллера. Даны рекомендации по подбору оборудования FPV начального уровня, приведен обзор программ для компьютеров и смартфонов, применяемых при настройке оборудования квадрокоптера.

    Проекты с использованием контроллера Arduino (2-е изд.)

    В книге рассмотрены основные платы Arduino и платы расширения (шилды), добавляющие функциональность основной плате. Подробно описан язык и среда программирования Arduino IDE. Тщательно разобраны проекты с использованием контроллеров семейства Arduino. Это проекты в области робототехники, создания погодных метеостанций, "умного дома", вендинга, телевидения, Интернета, беспроводной связи (bluetooth, радиоуправление).

    Во втором издании добавлены проекты голосового управления с помощью Arduino, работа с адресуемыми RGB-лентами, управление iRobot Create на Arduino. Рассмотрены проекты с использованием платы Arduino Leonardo. Приведены пошаговые уроки для начинающих разработчиков.

    Изучаем Arduino: инструменты и методы технического волшебства

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

    Быстрый старт. Первые шаги по освоению Arduino

    Книга ARDUINO Быстрый старт. Первые шаги по освоению ARDUINO содержит всю информацию для ознакомления с платой Arduino,а также 14 практических экспериментов с применением различных электронных компонентов и модулей.

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

    Arduino, датчики и сети для связи устройств (2-е изд.)

    Рассмотрены 33 проекта на основе микроконтроллерной платы Arduino, в которых показано, как сделать, чтобы электронные устройства могли обмениваться между собой данными и реагировать на команды. Показано, как изменить настройки домашнего кондиционера, «позвонив ему» со своего смартфона; как создавать собственные игровые контроллеры, взаимодействующие по сети; как использовать устройства ZigBee, Bluetooth, инфракрасное излучение и обычное радио для беспроводного получения информации от различных датчиков и др. Рассмотрены языки программирования Arduino, Processing и PHP.

    Прочитав книгу — «Arduino, датчики и сети для связи устройств», Вы научитесь создавать сети интеллектуальных устройств, которые обмениваются данными и реагируют на команды. Книга идеально подходит для людей, которые стремятся воплотить на практике свои творческие идеи. Вам не надо обладать специальными техническими знаниями и навыками в области электроники, Для начала реализации проектов необходимы только книга, идеи и недорогой набор с контроллером Arduino и некоторыми сетевыми модулями и датчиками.

    Arduino Essentials

    The Arduino is an open source microcontroller built on a single circuit board that is capable of receiving sensory input from its environment and controlling interactive physical objects. It is also a development environment that allows you to write software to the board, and is programmed in the Arduino programming language. The Arduino has become the most popular microcontroller platform and thus hundreds of projects are being developed using it, from basic to advanced levels.

    This book will first introduce you to the most important board models of the Arduino family. You will then learn to set up the Arduino software environment. Next, you will work with digital and analog inputs and outputs, manage the time precisely, establish serial communications with other devices in your projects, and even control interrupts to make your project more responsive. Finally, you will be presented with a complete real-world example by utilizing all the concepts learned so far in the book. This will enable you to develop your own microcontroller projects.

    Arduino Development Cookbook

    If you want to build programming and electronics projects that interact with the environment, this book will offer you dozens of recipes to guide you through all the major applications of the Arduino platform. It is intended for programming or electronics enthusiasts who want to combine the best of both worlds to build interactive projects.

    The single-chip computer board Arduino is small in size but vast in scope, capable of being used for electronic projects from robotics through to home automation. The most popular embedded platform in the world, Arduino users range from school children to industry experts, all incorporating it into their designs.

    Arduino Development Cookbook comprises clear and step-by-step recipes that give you the toolbox of techniques to construct any Arduino project, from the simple to the advanced. Each chapter gives you more essential building blocks for Arduino development, from learning about programming buttons through to operating motors, managing sensors, and controlling displays. Throughout, you’ll find tips and tricks to help you troubleshoot your development problems and push your Arduino project to the next level!

    Arduino Sketches: Tools and Techniques for Programming Wizardry

    Master programming Arduino with this hands-on guide Arduino Sketches is a practical guide to programming the increasingly popular microcontroller that brings gadgets to life. Accessible to tech-lovers at any level, this book provides expert instruction on Arduino programming and hands-on practice to test your skills. You’ll find coverage of the various Arduino boards, detailed explanations of each standard library, and guidance on creating libraries from scratch plus practical examples that demonstrate the everyday use of the skills you’re learning.

    Work on increasingly advanced programming projects, and gain more control as you learn about hardware-specific libraries and how to build your own. Take full advantage of the Arduino API, and learn the tips and tricks that will broaden your skillset. The Arduino development board comes with an embedded processor and sockets that allow you to quickly attach peripherals without tools or solders. It’s easy to build, easy to program, and requires no specialized hardware. For the hobbyist, it’s a dream come true especially as the popularity of this open-source project inspires even the major tech companies to develop compatible products.

    Arduino and LEGO Projects

    We all know how awesome LEGO is, and more and more people are discovering how many amazing things you can do with Arduino. In Arduino and LEGO Projects, Jon Lazar shows you how to combine two of the coolest things on the planet to make fun gadgets like a Magic Lantern RF reader, a sensor-enabled LEGO music box, and even an Arduino-controlled LEGO train set.

    * Learn that SNOT is actually cool (it means Studs Not on Top)
    * See detailed explanations and images of how everything fits together
    * Learn how Arduino fits into each project, including code and explanations

    Whether you want to impress your friends, annoy the cat, or just kick back and bask in the awesomeness of your creations, Arduino and LEGO Projects shows you just what you need and how to put it all together.

    Arduino Workshop

    The Arduino is a cheap, flexible, open source microcontroller platform designed to make it easy for hobbyists to use electronics in homemade projects. With an almost unlimited range of input and output add-ons, sensors, indicators, displays, motors, and more, the Arduino offers you countless ways to create devices that interact with the world around you.

    In Arduino Workshop, you’ll learn how these add-ons work and how to integrate them into your own projects. You’ll start off with an overview of the Arduino system but quickly move on to coverage of various electronic components and concepts. Hands-on projects throughout the book reinforce what you’ve learned and show you how to apply that knowledge. As your understanding grows, the projects increase in complexity and sophistication.

    C Programming for Arduino

    Building your own electronic devices is fascinating fun and this book helps you enter the world of autonomous but connected devices. After an introduction to the Arduino board, you’ll end up learning some skills to surprise yourself.

    Physical computing allows us to build interactive physical systems by using software & hardware in order to sense and respond to the real world. C Programming for Arduino will show you how to harness powerful capabilities like sensing, feedbacks, programming and even wiring and developing your own autonomous systems.

    C Programming for Arduino contains everything you need to directly start wiring and coding your own electronic project. You’ll learn C and how to code several types of firmware for your Arduino, and then move on to design small typical systems to understand how handling buttons, leds, LCD, network modules and much more.

    Arduino для начинающих волшебников

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

    Программирование микроконтроллерных плат Arduino/Freeduino

    Рассмотрено программирования микроконтроллерных плат Arduino/Freduino. Описана структура и функционирование микроконтроллеров, среда программирования Arduino, необходимые инструменты и комплектующие для проведения экспериментов. Подробно рассмотрены основы программирования плат Arduino: структура программы, команды, операторы и функции, аналоговый и цифровой ввод/вывод данных. Изложение материала сопровождается более 80 примерами по разработке различных устройств: реле температуры, школьных часов, цифрового вольтметра, сигнализации с датчиком перемещения, выключателя уличного освещения и др. Для каждого проекта приведен перечень необходимых компонентов, монтажная схема и листинги программ. На FTP-сервере издательства выложены исходные коды примеров из книги, технические описания, справочные данные, среда разработки, утилиты и драйверы.

    Arduino and Kinect Projects

    If you’ve done some Arduino tinkering and wondered how you could incorporate the Kinect—or the other way around—then this book is for you. The authors of Arduino and Kinect Projects will show you how to create 10 amazing, creative projects, from simple to complex. You’ll also find out how to incorporate Processing in your project design—a language very similar to the Arduino language.

    The ten projects are carefully designed to build on your skills at every step. Starting with the Arduino and Kinect equivalent of «Hello, World,» the authors will take you through a diverse range of projects that showcase the huge range of possibilities that open up when Kinect and Arduino are combined.

    Atmospheric Monitoring with Arduino

    Makers around the globe are building low-cost devices to monitor the environment, and with this hands-on guide, so can you. Through succinct tutorials, illustrations, and clear step-by-step instructions, you’ll learn how to create gadgets for examining the quality of our atmosphere, using Arduino and several inexpensive sensors.

    Detect harmful gases, dust particles such as smoke and smog, and upper atmospheric haze—substances and conditions that are often invisible to your senses. You’ll also discover how to use the scientific method to help you learn even more from your atmospheric tests.

    * Get up to speed on Arduino with a quick electronics primer
    * Build a tropospheric gas sensor to detect carbon monoxide, LPG, butane, methane, benzene, and many other gases
    * Create an LED Photometer to measure how much of the sun’s blue, green, and red light waves are penetrating the atmosphere
    * Build an LED sensitivity detector—and discover which light wavelengths each LED in your Photometer is receptive to
    * Learn how measuring light wavelengths lets you determine the amount of water vapor, ozone, and other substances in the atmosphere

    Руководство по освоению Arduino

    Издание представляет собой русскоязычный перевод одного из документов по работе с набором ARDX (Starter Kit for Arduino), предназначенного для экспериментов с Arduino. В документации описано 12 простейших проектов, ориентированных на начальное знакомство с модулем Arduino.

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

    Большая Энциклопедия Электрика

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

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

    Эта книга станет полезным справочником и для электрика-специалиста, и для домашнего умельца.

    Arduino блокнот программиста

    Этот блокнот следует рассматривать, как удобное, лёгкое в использовании руководство по структуре команд и синтаксису языка программирования контроллера Arduino. Для сохранения простоты, были сделаны некоторые исключения, что улучшает руководство при использовании начинающими в качестве дополнительного источника информации — наряду с другими web-сайтами, книгами, семинарами и классами. Подобное решение, призвано акцентировать внимание на использовании Arduino для автономных задач и, например, исключает более сложное использование массивов или использование последовательного соединения.

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

    Аналоговые интерфейсы микроконтроллеров

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

    Раскрывается специфика применения таких интерфейсов, как I2C, SPI/Microware, SMBus, RS-232/485/422, токовая петля 4-20 мА и др. Дается обзор большого количества современных датчиков: температурных, оптических, ПЗС, магнитных, тензодатчиков и т. д. Подробно описываются контроллеры, АЦП и ЦАПы, их элементы — УВХ, ИОН, кодеки, энкодеры.

    Рассмотрены исполнительные устройства — двигатели, терморегуляторы — и вопросы их управления в составе систем автоматического управления различного типа (релейного, пропорционального и ПИД). Книга снабжена иллюстрациями, наглядно представляющими аппаратные и программные особенности применения элементов аналоговой и цифровой техники. Заинтересует не только начинающих радиолюбителей, но и специалистов, имеющих стаж работы с аналоговой и цифровой техникой, а также студентов технических колледжей и вузов.

    Руководство по использованию АТ-команд для GSM/GPRS модемов

    В этом пособии изложено детальное описание полного набора АТ команд для работы с модемами компании Wavecom. Приведены специальные АТ команды для работы с протоколами стека IP, программно реализованными в модемах Wavecom.

    Книга ориентирована на разработчиков, создающих программные и программно-аппаратные приложения на базе продукции Wavecom. Руководство так же рекомендуется инженерам, отвечающим за эксплуатацию систем различного назначения, применяющим в качестве канала передачи данных сети GSM. Отличный справочник для студентов, которые используют в своей курсовой или дипломной работе тематику передачи данных в GSM сетях.

    Расскажи о нас

    Сообщение

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

    Этот симулятор лучше всего работает в браузере Chrome
    Давайте рассмотрим Arduino по внимательней.

    Arduino это не большой компьютер, к которому могут подключаться внешние цепи. В Arduino Uno используется Atmega 328P
    Это самый большой чип на плате. Этот чип выполняет программы, которые хранятся в его памяти. Вы можете загрузить программу через usb с помощью Arduino IDE. Usb порт также обеспечивает питание arduino.

    Есть отдельный разъём питания. На плате есть два вывода обозначенные 5v и 3.3v, которые нужны для того, чтобы запитывать различные устройства. Так же вы найдете контакты, помеченные как GND, это выводы земли (земля это 0В). Платформа Arduino, так же, имеет 14 цифровых выводов (пинов), помеченных цифрами от 0 до 13, которые подключаются к внешним узлам и имеют два состояния высокое или низкое (включено или выключено). Эти контакты могут работать как выходы или как входы, т.е. они могут либо передавать какие-то данные и управлять внешними устройствами, либо получать данные с устройств. Следующие выводы на плате обозначены А0-А5. Это аналоговые входы, которые могут принимать данные с различных датчиков. Это особенно удобно, когда вам надо измерить некий диапазон, например температуру. У аналоговых входов есть дополнительные функции, которые можно задействовать отдельно.

    Как использовать макетную плату.

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

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

    Два верхних и нижних ряда соединены по - рядно вдоль всей платы. Эти ряды используются, чтобы подавать питание на схему. Это может быть 5в или 3.3в, но в любом случае, первое, что вам надо сделать - это подключить 5в и GND на макетную плату, как показано на рисунке. Иногда эти соединения рядов могут прерываться посередине платы, тогда, если вам понадобится, вы можете их соединить, как показано на рисунке.








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


    Первое, что мы подключим к нашему микроконтроллеру, это светодиод. Схема электрических соединений показана на картинке.

    Для чего нужен резистор в схеме? В данном случае он ограничивает ток, который проходит через светодиод. Каждый светодиод рассчитан на определённый ток, и если этот ток будет больше, то светодиод выйдет из строя. Узнать, какого номинала должен быть резистор можно с помощью закона ома. Для тех кто не знает или забыл, закон ома говорит, что существует линейная зависимость тока от напряжения. Т.е, чем больше мы приложим напряжение к резистору, тем больше потечет через него ток.
    V=I*R
    Где V -напряжение на резистор
    I - ток через резистор
    R - сопротивление, которое надо найти.
    Во-первых, мы должны узнать напряжение на резистор. Большинство светодиодов 3мм или 5мм, которые вы будете использовать, имеют рабочее напряжение 3в. Значит, на резисторе нам надо погасить 5-3=2в.

    Затем мы вычислим ток, проходящий через резистор.
    Большинство 3 и 5мм светодиодов светятся полной яркостью при токе 20мА. Ток больше этого может вывести их из строя, а ток меньшей силы снизит их яркость, не причинив никакого вреда.

    Итак, мы хотим включить светодиод в цепь 5в,чтобы на нем был ток 20мА. Так как все детали включены в одну цепь на резистор тоже будет ток 20мА.
    Мы получаем
    2В = 20 мА * R
    2В = 0.02A * R
    R = 100 Ом

    100 Ом это минимальное сопротивление, лучше использовать немного больше, потому, что светодиоды имеют некоторый разброс характеристик.
    В данном примере используется резистор 220 Ом. Только потому, что у автора их очень много:wink: .

    Вставьте светодиод в отверстия посередине платы таким образом, чтобы его длинный вывод был соединён с одним из выводов резистора. Второй конец резистора соедините с 5V, а второй вывод светодиода соедините с GND. Светодиод должен загореться.

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

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

    Анатомия Arduino Sketch.

    Программы для Arduino называют sketch. Они состоят из двух основных функций. Функция setup и функция loop
    внутри этой функции вы будете задавать все основные настройки. Какие выводы будут работать на вход или выход, какие библиотеки подключать, инициализировать переменные. Функция Setup() запускается только один раз в течение скетча, когда стартует выполнение программы.
    это основная функция, которая выполняется после setup() . Фактически это сама программа. Это функция будет выполняться бесконечно, пока вы не выключите питание.

    Arduino мигает светодиодом



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

    Эта функция используется в setup () части программы и служит для инициализации выводов, которые вы будете использовать, как вход (INPUT) или выход (OUTPUT) . Вы не сможете считать или записать данные с пина, пока не установите его соответственно в pinMode . Эта функция имеет два аргумента: pinNumber - это номер пина, который вы будете использовать.

    Mode -задает, как пин будет работать. На вход (INPUT) или выход (OUTPUT) . Чтобы зажечь светодиод мы должны подать сигнал ИЗ Arduino. Для этого мы настраиваем пин на выход.
    - эта функция служит для того, чтобы задать состояние (state) пина (pinNumber) . Есть два основных состояния (вообще их 3), одно это HIGH , на пине будет 5в, другое это Low и на пине будет 0в. Значит, чтобы зажечь светодиод нам надо на пине, соединенном со светодиодом выставить высокий уровень HIGH .

    Задержка. Служит для задержки работы программы на заданный в мсек период.
    Ниже приведен код, который заставляет мигать светодиод.
    //LED Blink int ledPin = 7;//пин Arduino к которому подключен светодиод void setup() { pinMode(ledPin, OUTPUT);// установка пина как ВЫХОД } void loop() { digitalWrite(ledPin, HIGH);//зажечь светодиод delay(1000);// задержка 1000 мсек (1 сек) digitalWrite(ledPin, LOW);//Выключить светодиод delay(1000);//ждать 1 сек }

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

    ledPin - это переменная. Переменные используются в программах для хранения значений. В данном примере переменной ledPin присваивается значение 7, это номер пина Arduino. Когда Arduino в программе встретит строку с переменной ledPin , он будет использовать то значение, которое мы указали ранее.
    Так запись pinMode(ledPin, OUTPUT) аналогична записи pinMode(7, OUTPUT) .
    Но в первом случае вам достаточно поменять переменную и она поменяется в каждой строке, где используется, а во втором случае вам, чтобы поменять переменную, придётся ручками в каждой команде вносить изменения.

    В первой строке указывает на тип переменной. При программировании Arduino важно всегда объявлять тип переменных. Пока вам достаточно знать, что INT объявляет отрицательные и положительные числа.
    Ниже представлено моделирование скетча. Нажмите старт, чтобы посмотреть работу схемы.

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

    Управление несколькими светодиодами.

    В этом примере вы узнаете, как управлять несколькими светодиодами. Для этого установите ещё 3 светодиода на плату и соедините их с резисторами и выводами Arduino, как показано ниже.

    Для того, чтобы включать и выключать светодиоды по очереди надо написать программу подобную этой:
    //Multi LED Blink int led1Pin = 4; int led2Pin = 5; int led3Pin = 6; int led4Pin = 7; void setup() { //установка пинов как ВЫХОД pinMode(led1Pin, OUTPUT); pinMode(led2Pin, OUTPUT); pinMode(led3Pin, OUTPUT); pinMode(led4Pin, OUTPUT); } void loop() { digitalWrite(led1Pin, HIGH);//зажечь светодиод delay(1000);//задержка 1 сек digitalWrite(led1Pin, LOW);//потушить светодиод delay(1000);//задержка 1 сек //do the same for the other 3 LEDs digitalWrite(led2Pin, HIGH);//зажечь светодиод delay(1000);// задержка 1 сек digitalWrite(led2Pin, LOW);//потушить светодиод delay(1000);//задержка 1 сек digitalWrite(led3Pin, HIGH);//зажечь светодиод delay(1000);// задержка 1 сек digitalWrite(led3Pin, LOW);//потушить светодиод delay(1000);//задержка 1 сек digitalWrite(led4Pin, HIGH);//зажечь светодиод delay(1000);// задержка 1 сек digitalWrite(led4Pin, LOW);//потушить светодиод delay(1000);//задержка 1 сек }

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

    DigitalWrite (led4Pin, HIGH); delay (1000); digitalWrite (led4Pin, LOW); delay (1000);
    полный код скетча во вложении (скачиваний: 1187)

    Регулировка яркости светодиодов

    Иногда вам надо будет менять яркость светодиодов в программе. Это можно сделать с помощью команды analogWrite() . Эта команда так быстро включает и выключает светодиод, что глаз не видит это мерцание. Если светодиод половину времени будет включён, а половину выключен, то визуально будет казаться, что он светится в половину своей яркости. Это называется широтно-импульсная модуляция (ШИМ или PWM по-английски). Шим применяется довольно часто, так как с ее помощью можно управлять "аналоговым" компонентом с помощью цифрового кода. Не все выводы Arduino подходят для этих целей. Только те выводы, около которых нарисовано такое обозначение "~ ". Вы увидите его рядом с выводами 3,5,6,9,10,11.
    Соедините один из ваших светодиодов с одним из выводов ШИМ(у автора это вывод 9). Теперь запуститьскетч мигания светодиода, но прежде измените команду digitalWrite() на analogWrite() . analogWrite() имеет два аргумента: первый это номер вывода, а второй- значение ШИМ (0-255), применительно к светодиодам это будет их яркость свечения, а для электродвигателей скорость вращения. Ниже представлен код примера для разной яркости светодиода.
    //Меняем яркость светодиода int ledPin = 9;//к этому выводу подсоединен светодиод void setup() { pinMode(ledPin, OUTPUT);// инициализация пина на вывод } void loop() { analogWrite(ledPin, 255);//полная яркость (255/255 = 1) delay(1000);// пауза 1 сек digitalWrite(ledPin, LOW);//выключить светодиод delay(1000);//пауза 1 сек analogWrite(ledPin, 191);//яркость на 3/4 (191/255 ~= 0.75) delay(1000);//пауза 1 сек digitalWrite(ledPin, LOW);//выключить светодиод delay(1000);//пауза 1 сек analogWrite(ledPin, 127);//половина яркости (127/255 ~= 0.5) delay(1000);// пауза 1 сек digitalWrite(ledPin, LOW);//выключить светодиод delay(1000);//пауза 1 сек analogWrite(ledPin, 63);//четверть яркости (63/255 ~= 0.25) delay(1000);// пауза 1 сек digitalWrite(ledPin, LOW);//выключить светодиод delay(1000);//пауза 1 сек }

    Попробуйте поменять значение ШИМ в команде analogWrite () ,чтобы увидеть, как это влияет на яркость.
    Далее вы узнаете, как регулировать яркость плавно от полной до нулевой. Можно,конечно, скопировать кусок кода 255 раз
    analogWrite(ledPin, brightness); delay(5);//short delay brightness = brightness + 1;
    Но, сами понимаете - это будет не практично. Для этого лучше всего использовать цикл FOR, который использовали ранее.
    В следующем примере используются два цикла, один для уменьшения яркости от 255 до 0
    for (int brightness=0;brightness=0;brightness--){ analogWrite(ledPin,brightness); delay(5); }
    delay(5) используется, чтобы замедлить скорость нарастания и уменьшения яркости 5*256=1280 мсек= 1.28 сек.)
    В первой строке используется "brightness- " ,для того чтобы значение яркости уменьшалось на 1, каждый раз, когда цикл повторяется. Обратите внимание, что цикл будет работать до тех пор, пока brightness >=0 .Заменив знак > на знак >= мы включили 0 в диапазон яркости. Ниже смоделирован этот скетч. //плавно меняем яркость int ledPin = 9;//к этому пину подключен светодиод void setup() { pinMode(ledPin, OUTPUT);// инициализация пина на выход } void loop() { //плавно увеличиваем яркость (0 to 255) for (int brightness=0;brightness=0;brightness--){ analogWrite(ledPin,brightness); delay(5); } delay(1000);//ждем 1 сек //плавно уменьшаем яркость (255 to 0) for (int brightness=255;brightness>=0;brightness--){ analogWrite(ledPin,brightness); delay(5); } delay(1000);//ждем 1 сек } }
    Это видно не очень хорошо, но идея понятна.

    RGB-светодиод и Arduino

    RGB-светодиод на самом деле это три светодиода разного цвета в одном корпусе.

    Включая разные светодиоды с различной яркостью можно комбинировать и получать разные цвета. Для Arduino, где количество градаций яркости равно 256 вы получите 256^3=16581375 возможных цветов. Реально их, конечно, будет меньше.
    Светодиод, который мы будем использоваться общим катодом. Т.е. все три светодиода конструктивно соединены катодами к одному выводу. Этот вывод мы подсоединим к выводу GND. Остальные выводы, через ограничительные резисторы, надо подсоединить к выводам ШИМ. Автор использовал выводы 9-11.Таким образом можно будет управлять каждым светодиодом отдельно. В первом скетче показано, как включить каждый светодиод отдельно.



    //RGB LED - test //pin connections int red = 9; int green = 10; int blue = 11; void setup(){ pinMode(red, OUTPUT); pinMode(blue, OUTPUT); pinMode(green, OUTPUT); } void loop(){ //включение/выключение красного светодиод digitalWrite(red, HIGH); delay(500); digitalWrite(red, LOW); delay(500); //включение/выключение зеленого светодиода digitalWrite(green, HIGH); delay(500); digitalWrite(green, LOW); delay(500); //включение/выключение синего светодиода digitalWrite(blue, HIGH); delay(500); digitalWrite(blue, LOW); delay(500); }

    В следующем примере используются команды analogWrite() и , чтобы получать различные случайные значения яркости для светодиодов. Вы увидите разные цвета, меняющиеся случайным образом.
    //RGB LED - random colors //pin connections int red = 9; int green = 10; int blue = 11; void setup(){ pinMode(red, OUTPUT); pinMode(blue, OUTPUT); pinMode(green, OUTPUT); } void loop(){ //pick a random color analogWrite(red, random(256)); analogWrite(blue, random(256)); analogWrite(green, random(256)); delay(1000);//wait one second }

    Random(256) -возвращает случайное число в диапазоне от 0 до 255.
    В прикрепленном файле скетч, который продемонстрирует плавные переходы цветов от красного к зеленому, затем к синему, красному, зеленому и т.д. (скачиваний: 326)
    Пример скетча работает, но есть много повторяющегося кода. Можно упростить код, написав собственную вспомогательную функцию, которая будет плавно менять один цвет на другой.
    Вот как она будет выглядеть: (скачиваний: 365)
    Давайте рассмотрим определение функции по частям. Функция называется fader и имеет два аргумента. Каждый аргумент отделяется запятой и имеет тип объявленный в первой строке определения функции: void fader (int color1, int color2) . Вы видите, что оба аргумента объявлены как int , и им присвоены имена color1 и color2 в качестве условных переменных для определения функции. Void означает, что функция не возвращает никаких значений, она просто выполняет команды. Если надо было бы написать функцию, которая возвращала результат умножения это выглядело бы так:
    int multiplier(int number1, int number2){ int product = number1*number2; return product; }
    Обратите внимание, как мы объявили Тип int в качестве типа возвращаемого значения вместо
    void .
    Внутри функции идут команды, которые вы уже использовали в предыдущем скетче, только номера выводов заменили на color1 и color2 . Вызывается функция fader , ее аргументы вычисляются как color1 = red и color2 = green . В архиве полный скетч с использованием функций (скачиваний: 272)

    Кнопка

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


    Это значит, что пока кнопка не нажата, ток через неё не идёт, а после отпускания, кнопка возвращается в исходное положение.
    В схеме, помимо кнопки используется резистор. В данном случае он не ограничивает ток, а "подтягивает" кнопку к 0в (GND). Т.е. пока кнопка не нажата на выводе Arduino, к которому она подключена, будет низкий уровень. Резистор, используемый в схеме 10 кОм.


    //определяем нажатие кнопки int buttonPin = 7; void setup(){ pinMode(buttonPin, INPUT);//инициализируем пин на вход Serial.begin(9600);//инициализируем последовательный порт } void loop(){ if (digitalRead(buttonPin)==HIGH){//если кнопка нажата Serial.println("pressed"); // выводим надпись "pressed" } else { Serial.println("unpressed");// иначе "unpressed" } }
    В этом скетче несколько новых команд.
    -эта команда принимает значение High (высокий уровень) и low (низкий уровень), того вывода, который мы проверяем. Предварительно в setup() этот вывод надо настроить на вход.
    ; //где buttonPin это номер вывода, куда подсоединяется кнопка.
    Последовательный порт позволяет отправлять Arduino сообщения на компьютер, в то время, как сам контроллер выполняет программу. Это полезно для отладки программы, отправки сообщений на другие устройства или приложения. Чтобы включить передачу данных через последовательный порт (другое название UART или USART), надо инициализировать его в setup()

    Serial.begin() имеет всего один аргумент-это скорость передачи данных между Arduino и компьютером.
    скетче используется команда для вывода сообщения на экран в Arduino IDE (Tools >> Serial Monitor).
    - конструкция позволяют контролировать ход выполнения программы, объеденив несколько проверок в одном месте.
    If(если) digitalRead возвращает значение HIGH, то на мониторе выводится слово "нажата". Else(иначе) на мониторе выводится слово " отжата" . Теперь можно попробовать включать и выключать светодиод по нажатию кнопки.
    //button press detection with LED output int buttonPin = 7; int ledPin = 8; void setup(){ pinMode(buttonPin, INPUT);//this time we will set button pin as INPUT pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop(){ if (digitalRead(buttonPin)==HIGH){ digitalWrite(ledPin,HIGH); Serial.println("pressed"); } else { digitalWrite(ledPin,LOW); Serial.println("unpressed"); } }

    Аналоговый вход.

    analogRead позволяет считать данные с одного из аналоговых выводов Arduino и выводит значение в диапазоне от 0 (0В) до 1023 (5В). Если напряжение на аналоговом входе будет равно 2.5В, то будет напечатано 2.5 / 5 * 1023 = 512
    analogRead имеет только один аргумент- Это номер аналогового входа (А0-А5). В следующем скетче приводится код считывания напряжения с потенциометра. Для этого подключите переменный резистор, крайними выводами на пины 5V и GND, а средний вывод на вход А0.

    Запустите следующий код и посмотрите в serial monitor, как меняются значения в зависимости от поворота ручки резистора.
    //analog input int potPin = A0;//к этому пину подсоединяется центральный вывод потенциометра void setup(){ //аналоговый пин по умолчанию включен на вход, поэтому инициализация не нужна Serial.begin(9600); } void loop(){ int potVal = analogRead(potPin);//potVal is a number between 0 and 1023 Serial.println(potVal); }
    Следующий скетч объединяет скетч нажатия кнопки и скетч управления яркостью светодиода. Светодиод будет включаться от кнопки, и управлять яркостью свечения будет потенциометр.
    //button press detection with LED output and variable intensity int buttonPin = 7; int ledPin = 9; int potPin = A0; void setup(){ pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop(){ if (digitalRead(buttonPin)==HIGH){//if button pressed int analogVal = analogRead(potPin); int scaledVal = map(analogVal, 0, 1023, 0, 255); analogWrite(ledPin, scaledVal);//turn on led with intensity set by pot Serial.println("pressed"); } else { digitalWrite(ledPin, LOW);//turn off if button is not pressed Serial.println("unpressed"); } }

    Этот урок дает минимальные знания, необходимые для программирования систем Ардуино на языке C. Можно только просмотреть его и в дальнейшем использовать как справочную информацию. Тем, кто программировал на C в других системах можно пропустить статью.

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

    Структура программы Ардуино.

    Структура программы Ардуино достаточно проста и в минимальном варианте состоит из двух частей setup() и loop().

    void setup() {

    void loop() {

    Функция setup() выполняется один раз, при включении питания или сбросе контроллера. Обычно в ней происходят начальные установки переменных, регистров. Функция должна присутствовать в программе, даже если в ней ничего нет.

    После завершения setup() управление переходит к функции loop(). Она в бесконечном цикле выполняет команды, записанные в ее теле (между фигурными скобками). Собственно эти команды и совершают все алгоритмические действия контроллера.

    Первоначальные правила синтаксиса языка C.

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

    z = x + y;
    z= x
    + y ;

    { } фигурные скобки определяют блок функции или выражений. Например, в функциях setup() и loop().

    /* … */ блок комментария , обязательно закрыть.

    /* это блок комментария */

    // однострочный комментарий , закрывать не надо, действует до конца строки.

    // это одна строка комментария

    Переменные и типы данных.

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

    Тип данных Разрядность, бит Диапазон чисел
    boolean 8 true, false
    char 8 -128 … 127
    unsigned char 8 0 … 255
    byte 8 0 … 255
    int 16 -32768 … 32767
    unsigned int 16 0 … 65535
    word 16 0 … 65535
    long 32 -2147483648 … 2147483647
    unsigned long 32 0 … 4294967295
    short 16 -32768 … 32767
    float 32 -3.4028235+38 … 3.4028235+38
    double 32 -3.4028235+38 … 3.4028235+38

    Типы данных выбираются исходя из требуемой точности вычислений, форматов данных и т.п. Не стоит, например, для счетчика, считающего до 100, выбирать тип long. Работать будет, но операция займет больше памяти данных и программ, потребует больше времени.

    Объявление переменных.

    Указывается тип данных, а затем имя переменной.

    int x; // объявление переменной с именем x типа int
    float widthBox; // объявление переменной с именем widthBox типа float

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

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

    • Переменные, объявленные в начале программы, до функции void setup(), считаются глобальными и доступны в любом месте программы.
    • Локальные переменные объявляются внутри функций или таких блоков, как цикл for, и могут использоваться только в объявленных блоках. Возможны несколько переменных с одним именем, но разными областями видимости.

    int mode; // переменная доступна всем функциям

    void setup() {
    // пустой блок, начальные установки не требуются
    }

    void loop() {

    long count; // переменная count доступна только в функции loop()

    for (int i=0; i < 10;) // переменная i доступна только внутри цикла
    {
    i++;
    }
    }

    При объявлении переменной можно задать ее начальное значение (проинициализировать).

    int x = 0; // объявляется переменная x с начальным значением 0
    char d = ‘a’; // объявляется переменная d с начальным значением равным коду символа ”a”

    При арифметических операциях с разными типами данных происходит автоматическое преобразование типов данных. Но лучше всегда использовать явное преобразование.

    int x; // переменная int
    char y; // переменная char
    int z; // переменная int

    z = x + (int) y; // переменная y явно преобразована в int

    Арифметические операции.

    Операции отношения.

    Логические операции.

    Операции над указателями.

    Битовые операции.

    & И
    | ИЛИ
    ^ ИСКЛЮЧАЮЩЕЕ ИЛИ
    ~ ИНВЕРСИЯ
    << СДВИГ ВЛЕВО
    >> СДВИГ ВПРАВО

    Операции смешанного присваивания.

    Выбор вариантов, управление программой.

    Оператор IF проверяет условие в скобках и выполняет последующее выражение или блок в фигурных скобках, если условие истинно.

    if (x == 5) // если x=5, то выполняется z=0
    z=0;

    if (x > 5) // если x >
    { z=0; y=8; }

    IF … ELSE позволяет сделать выбор между двух вариантов.

    if (x > 5) // если x > 5, то выполняется блок z=0, y=8;
    {
    z=0;
    y=8;
    }

    {
    z=0;
    y=0;
    }

    ELSE IF – позволяет сделать множественный выбор

    if (x > 5) // если x > 5, то выполняется блок z=0, y=8;
    {
    z=0;
    y=8;
    }

    else if (x > 20) // если x > 20, выполняется этот блок
    {
    }

    else // в противном случае выполняется этот блок
    {
    z=0;
    y=0;
    }

    SWITCH CASE - множественный выбор. Позволяет сравнить переменную (в примере это x) с несколькими константами (в примере 5 и 10) и выполнить блок, в котором переменная равна константе.

    switch (x) {

    case 5:
    // код выполняется если x = 5
    break;

    case 10:
    // код выполняется если x = 10
    break;

    default:
    // код выполняется если не совпало ни одно предыдущее значение
    break;
    }

    Цикл FOR . Конструкция позволяет организовывать циклы с заданным количеством итераций. Синтаксис выглядит так:

    for (действие до начала цикла;
    условие продолжения цикла;
    действие в конце каждой итерации) {

    // код тела цикла

    Пример цикла из 100 итераций.

    for (i=0; i < 100; i++) // начальное значение 0, конечное 99, шаг 1

    {
    sum = sum + I;
    }

    Цикл WHILE . Оператор позволяет организовывать циклы с конструкцией:

    while (выражение)
    {
    // код тела цикла
    }

    Цикл выполняется до тех пор, пока выражение в скобках истинно. Пример цикла на 10 итераций.

    x = 0;
    while (x < 10)
    {
    // код тела цикла
    x++;
    }

    DO WHILE – цикл с условием на выходе.

    do
    {
    // код тела цикла
    } while (выражение);

    Цикл выполняется пока выражение истинно.
    BREAK – оператор выхода из цикла. Используется для того, чтобы прервать выполнение циклов for, while, do while.

    x = 0;
    while (x < 10)
    {
    if (z > 20) break; // если z > 20, то выйти из цикла
    // код тела цикла
    x++;
    }

    GOTO – оператор безусловного перехода.

    goto metka1; // переход на metka1
    ………………
    metka1:

    CONTINUE - пропуск операторов до конца тела цикла.

    x = 0;
    while (x < 10)
    {
    // код тела цикла
    if (z > 20) continue; // если z > 20, то вернуться на начало тела цикла
    // код тела цикла
    x++;
    }

    Массивы.

    Массив это область памяти, где последовательно хранятся несколько переменных.

    Объявляется массив так.

    int ages; // массив из 10 переменных типа int

    float weight; // массив из 100 переменных типа float

    При объявлении массивы можно инициализировать:

    int ages = { 23, 54, 34, 24, 45, 56, 23, 23, 27, 28};

    Обращаются к переменным массивов так:

    x = ages; // x присваивается значение из 5 элемента массива.
    ages = 32; // 9 элементу массива задается значение 32

    Нумерация элементов массивов всегда с нуля.

    Функции.

    Функции позволяют выполнять одни и те же действия с разными данными. У функции есть:

    • имя, по которому ее вызывают;
    • аргументы – данные, которые функция использует для вычисления;
    • тип данных, возвращаемый функцией.

    Описывается пользовательская функция вне функций setup() и loop().

    void setup() {
    // код выполняется один раз при запуске программы
    }

    void loop() {
    // основной код, выполняется в цикле
    }

    // объявление пользовательской функции с именем functionName
    type functionName(type argument1, type argument1, … , type argument)
    {
    // тело функции
    return();
    }

    Пример функции, вычисляющей сумму квадратов двух аргументов.

    int sumQwadr (int x, int y)
    {
    return(x* x + y*y);
    }

    Вызов функции происходит так:

    d= 2; b= 3;
    z= sumQwadr(d, b); // в z будет сумма квадратов переменных d и b

    Функции бывают встроенные, пользовательские, подключаемые.

    Очень коротко, но этих данных должно хватить для того, чтобы начать писать программы на C для систем Ардуино.

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

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

    Имена в языке C.

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

    Signal, TimeCount

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

    Рубрика: . Вы можете добавить в закладки.

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

    Arduino - это одноплатный контроллер с открытыми исходными кодами, который можно использовать в множестве различных приложений. Это возможно самый простой и самый дешевый вариант из микроконтроллеров для любителей, студентов и профессионалов для разработки проектов на основе микроконтроллеров. Платы Arduino используют либо микроконтроллер Atmel AVR, либо микроконтроллер Atmel ARM, и в некоторых версия имеет интерфейс USB. Они также имеют шесть или более выводов аналоговых входов и четырнадцать или более выводов цифровых входов/выходов (I/O), которые используются для подключения к микроконтроллеру датчиков, приводов и других периферийных схем. Цена на платы Arduino в зависимости от набора функций составляет от шести до сорока долларов.

    Типы плат Arduino

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

    • Arduino Robot
    • Arduino Ethernet

    На разнообразие плат Arduino и их технические описания можно посмотреть в подразделе « » раздела «Купить » данного сайта.

    Программное обеспечение (IDE)

    Программное обеспечение, используемое для программирования Arduino, представляет собой интегрированную среду разработки Arduino IDE. IDE представляет собой Java приложение, которое работает на множестве различных платформ, включая системы PC, Mac и Linux. Она разработана для начинающих, которые не знакомы с программированием. Она включает в себя редактор, компилятор и загрузчик. Также в IDE включены библиотеки кода для использования периферии, например, последовательных портов и различных типов дисплеев. Программы для Arduino называются «скетчами», и они написаны на языке, очень похожем на C или C++.

    Большинство плат Arduino подключаются к компьютеру с помощью USB кабеля. Это соединение позволяет загружать скетчи на вашу плату Arduino, а также обеспечивает плату питанием.

    USB кабель для Arduino

    Программирование

    Программирование Arduino легко: сначала вы используете редактор кода IDE для написания программы, а затем компилируете и загружаете её одним кликом.

    Программа для Arduino включает в себя две основные функции:

    • setup()
    • loop()

    Вы можете использовать функцию setup() для инициализации настроек платы. Эта функция выполняется только один раз, при включении платы.

    Функция loop() выполняется после завершения функции setup() , и в отличие от функции setup() она работает постоянно.

    Функции программ

    Ниже приведен список наиболее часто используемых функции при программировании Arduino:

    • pinMode - устанавливает вывод в режим входа или выхода;
    • analogRead - считывает аналоговое напряжение на аналоговом входном выводе;
    • analogWrite - записывает аналоговое напряжение в аналоговый выходной вывод;
    • digitalRead - считывает значение цифрового входного вывода;
    • digitalWrite - задает значение цифрового выходного вывода в высокий или низкий уровень;
    • Serial.print - пишет данные в последовательный порт в виде удобочитаемого текста ASCII.

    Библиотеки Arduino

    Библиотеки Arduino представляют собой коллекции функций, которые позволят вам управлять устройствами. Вот некоторые из наиболее широко используемых библиотек:

    • EEPROM - чтение и запись в «постоянно» хранилище;
    • Ethernet - для подключения к интернету, используя плату Arduino Ethernet Shield;
    • Firmata - для связи с приложениями на компьютере, используя стандартный последовательный протокол;
    • GSM - для подключения к сети GSM/GRPS с помощью платы GSM;
    • LiquidCrystal - для управления жидкокристаллическими дисплеями (LCD);
    • SD - для чтения и записи SD карт;
    • Servo - для управления сервоприводами;
    • SPI - для связи с устройствами, используя шину SPI;
    • SoftwareSerial - для последовательной связи через любые цифровые выводы;
    • Stepper - для управления шаговыми двигателями;
    • TFT - для отрисовки текста, изображений и фигур Arduino TFT экранах;
    • WiFi - для подключения к интернету, используя плату Arduino WiFi shield;
    • Wire - двухпроводный интерфейс (TWI/I2C) для передачи и приема данных через сеть устройств или датчиков.

    Этапы настройки Arduino


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