Разделы

В сети

Пользователей: 176
Из них просматривают:
Аналоги: 70. Даташиты: 56. Инструкции: 4. Новости: 18. Остальное: 12. Ошибки: 1. Программы: 2. Производители: 1. Профиль пользователя: 1. Теги: 1. Форум: 9. Чат: 1.
Участников: 3
Гостей: 173

an , Google , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

В настоящее время нет объявлений.
Arduino UNO
Раздел: Arduino

Arduino. Ознакомление

Написал MACTEP 20.08.2016 21:10:00 (Просмотров: 14441)
Эта статья открывает рубрику Arduino. Есть несколько видов, но основных, самых популярных 3. Это Arduino UNO, Arduino Mini и Arduino Nano. В этой статье будет обзор Arduino UNO.
В Arduino UNO контроллер собран на ATmega328. У платы четырнадцать входов/выходов, из них шесть могут использоваться как выходы ШИМ (распиновку рассмотрим ниже). Так же есть шесть аналоговых входов.
Плата имеет USB вход, разъем для питания. Кнопку сброса.



Китайская Arduino UNO
Рис. 1 Внешний вид китайской "Arduino UNO"

Родная, итальянская Arduino UNO стоит около 20$, а китайская подделка - 3$, разница только в упаковке :)
Я приобрел Arduino UNO в Китае, ее и буду рассматривать.

Для начала характеристики:

Микроконтроллер - ATmega328
Рабочее напряжение - 5 В
Входное напряжение - 7-12 В
Цифровые входы/выходы - 14 (6 из них + ШИМ)
Аналоговые входы - 6
Постоянный ток через вход/выход - 40 мА
Флеш-память - 32 Кб (из них 0.5 Кб загрузчик)
ОЗУ - 2 Кб
EEPROM - 1 Кб
Тактовая частота - 16 МГц

Arduino UNO может быть запитана от USB или от внешнего источника 7-12В. У меня от USB не запускается толком, подключил внешний источник 7В (Переделал зарядное устройство мобилы.)

Распиновка выводов:


POWER
5V - 5В
RES - Сброс
3.3V - 3.3В от внутреннего преобразователя
5V - 5В
GND - Общий
GND - Общий
VIN - Входное питание 7-12 В

ANALOG IN (Аналоговые входы)
A0
A1
A2
A3
A4
A5

DiGiTAL PWM(~) Цифровые входы/выходы (~ - ШИМ)
0 RX-> - Цифровой вход/выход 0 + последовательная шина приема данных
1 TX-> - Цифровой вход/выход 1 + последовательная шина передачи данных
2 - Цифровой вход/выход 2 + Внешнее прерывание
3~ - Цифровой вход/выход 3 + ШИМ + Внешнее прерывание
4 - Цифровой вход/выход 4
5~ - Цифровой вход/выход 5 + ШИМ
6~ - Цифровой вход/выход 6 + ШИМ
7 - Цифровой вход/выход 7
8 - Цифровой вход/выход 8
9~ - Цифровой вход/выход 9 + ШИМ
10~ - Цифровой вход/выход 10 + ШИМ
11~ - Цифровой вход/выход 11 + ШИМ
12 - Цифровой вход/выход 12
13 - Цифровой вход/выход 13
GND - Общий
AREF - Опорное напряжение
SDA - Связь I2C
SDL - Связь I2C


К пину 13 постоянно подключен светодиод L.
Остальные светодиоды на плате:
ON - питание
RX - получение данных
TX - Запись данных (китайцы наоборот вписали)

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

Скачиваем програмное обеспечение Arduino
Рис. 2

Затем необходимо удостовериться, на какой микросхеме построен виртуальный COM порт. В китайских вариациях это обычно CH340, на нее надо установить драйвера. Скачать можно внизу статьи. При первом подключении система запросит установку драйвера, указываем путь к скачанной папке.

Настройки Arduino
Рис. 3

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

COM порт
Рис. 4

Подключаем к Arduino два светодиода

Подключение к Arduino светодиодов
Рис. 5

Запишем первый скетч

void setup() {
  pinMode(12, OUTPUT);     //12 пин на вывод
  pinMode(13, OUTPUT);     //13 пин на вывод
}

void loop() {
  digitalWrite(13, HIGH);  // включаем светодиод на пине 13
  delay(200);              // пауза 200 мСек
  digitalWrite(13, LOW);   // отключаем светодиод на пине 13
  delay(200);              // пауза 200 мСек
  digitalWrite(13, HIGH);  // включаем светодиод на пине 13
  delay(200);              // пауза 200 мСек
  digitalWrite(13, LOW);   // отключаем светодиод на пине 13
  delay(200);              // пауза 200 мСек

  digitalWrite(12, HIGH);  // включаем светодиод на пине 12
  delay(200);              // пауза 200 мСек
  digitalWrite(12, LOW);   // отключаем светодиод на пине 12
  delay(200);              // пауза 200 мСек
  digitalWrite(12, HIGH);  // включаем светодиод на пине 12
  delay(200);              // пауза 200 мСек
  digitalWrite(12, LOW);   // отключаем светодиод на пине 12
  delay(200);              // пауза 200 мСек
}


Загрузка Arduino
Запускаем компиляцию и загрузку и...

Видео работы



Инфо

1. драйвер СР340 (СР341)
2. Программное обеспечение Arduino



7

Теги:

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 18.12.2008
Откуда: Тирасполь
Сообщений: 2075
не в сети
Цитата:
азъем для питаня. Кнапку сброса.
Эм...ну как бы вы поняли...
 Arduino. Ознакомление
Модератор
Модератор
Дата регистрации: 25.02.2009
Откуда: ПМР Рыбница
Сообщений: 2070
не в сети
Гром, чем придираться к опечаткам, лучше бы написал интересную статью.
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7024
не в сети
Гром, что мы должны понять?
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 18.12.2008
Откуда: Тирасполь
Сообщений: 2075
не в сети
грамматические ошибки
Цитата:
Для работы с Arduino необходимо скачать програмное обеспечение на сайте Arduino
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7024
не в сети
Гром, мне надо клаву менять, вся стертая, глючит. Подсказывай в личке. Чтоб не засорять комменты.
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7024
не в сети
Собрал часы на Arduino
Открыть изображение в новом окне
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.01.2009
Откуда: Tallinn
Сообщений: 2276
не в сети
OOOOOOOOOO!
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 17.07.2010
Откуда: Спиртогонск
Сообщений: 2088
не в сети
А чего так мелко-то?
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7024
не в сети
Всмысле мелко? Этот индикатор воспроизводит знаки в своих знакоместах.
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 17.07.2010
Откуда: Спиртогонск
Сообщений: 2088
не в сети
Цифры мелкие и где-то в углу. В лупу его разглядывать-что ли?
Надо чтобы цифры были покрупнее (по высоте на весь экран). А то как-то не смотрится и неудобно.
А вообще, сам по себе индикатор хорош, но думается, он может отображать и большие символы (одна цифра на четыре знакоместа).
Или это какие-то специальные часы?
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7024
не в сети
Ну не даром же выбран двухстрочный индикатор. В одной строчке будут данные о погоде, во второй время. Это же Arduino Сам творишь, что хочешь.  Если умеешь. А вы с Громом, судя по всему, годитесь только в качестве экспертов...
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 18.12.2008
Откуда: Тирасполь
Сообщений: 2075
не в сети
Ахах, мелко я думал в смысле почему Мастер такой мелочный проект сделал...надо было управление ядерным реактором, или синхрофазотроном сделать. На крайняк уже управление инкубатором.
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2576
не в сети
Я так и не понял, а откуда код надо брать, который после фразы "Запишем первый скетч"?))
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7024
не в сети
1. Самому писать
2. Из библиотеки Arduino
3. Найти готовый скетч в интернете

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

Открыть изображение в новом окне
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2576
не в сети
Если на основе этой платы что-то конструировать, само устройство же выйдет дорогим?
То есть плата только чтобы учиться кодить на самой плате? Или все коды можно потом в ту же Атмега328 прошивать и она будет работать?
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 17.07.2010
Откуда: Спиртогонск
Сообщений: 2088
не в сети
А, они ещё и погоду показывают. Тогда другое дело.
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.01.2009
Откуда: Tallinn
Сообщений: 2276
не в сети
А UHD телик можно сделать,на 3 светиках?
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7024
не в сети
КТ, Эта плата стоит около 3$ это дорого? На фото часов плата с индикатором чуть меньше 3$.
Из популярных, есть arduino mini - нет подключения к компьютеру, но отдельно можно приобрести плату подключения к usb - цена mini - меньше 2$ (напомни, сколько атмега стоит?) - размеры mini можешь посмотреть у нас в магазине.
Есть еще Arduino Nano - цена тоже мизерная, но это практически аналог UNO - но микроскопических размеров.
Я еще приобрел "знаменитый набор" из 37 модулей (около 10$  то там одно Г.

Т.е. UNO - для отладки, а внедрение уже в Mini

Ну и отет еще на один твой вопрос, ну да, можно в atmega328 залить, развести и будет работать, конечно же. Только, как я сказал выше, это проще делать на Arduino Mini, Atmega стоит 1.4$ а Arduino Mini - 1.8$ При том, что atmega на arduino уже распаяна, есть стаб на 3.3В, кварц...
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.01.2009
Откуда: Tallinn
Сообщений: 2276
не в сети
Raspberry Pi 3 крути,а с этим шо делать?
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7024
не в сети
wolf170571, это разные вещи. Малинка практически полноценный компьютер, а Arduino - всего лишь ATMega328.
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2576
не в сети
Тады учи кодить.


ПС:  где обещанные 40 девственниц, за статьи, которые я писал для сайта?
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 17.07.2010
Откуда: Спиртогонск
Сообщений: 2088
не в сети
Только резиновых.
 Arduino. Ознакомление
Старший сотрудник
Старший сотрудник
Дата регистрации: 07.01.2010
Откуда:
Сообщений: 124
не в сети
Arduino это устаревшая платформа как и AVR. Даже близко не сравнится с STM32.
 Arduino. Ознакомление
Модератор
Модератор
Дата регистрации: 26.01.2010
Откуда: Тирасполь
Сообщений: 3866
не в сети
Мля...  К слову, библиотеки периферии от стм32 намного рукожопее библиотек ардуино. Да и ниши у стм и ардуино разные.
 Arduino. Ознакомление
Старший сотрудник
Старший сотрудник
Дата регистрации: 07.01.2010
Откуда:
Сообщений: 124
не в сети
Я видел библиотеки ардуины. Это "шедевр" использовать C++ с динамическим созданием объектов в МК со столь ограниченными ресурсами. Еще один "шедевр" это сплошной ногодрыг даже в тех случаях когда задачу можно решить аппаратно.
Да и дело не в библиотеках. Процессорное ядро и периферия в STM32 намного продвинутее чем в ARV ATmega на которой построена ардуина.
https://geektimes.ru/post/255796/
https://geektimes.ru/post/263210/
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
Вот тоже обзавёлся этой китайской платой. Пока что получилось заставить мигать светодиоды. Забавная вещица.
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2576
не в сети
Будешь по ней статьи писать? 
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
А что, будешь читать?
 Arduino. Ознакомление
Технолог
Технолог
Дата регистрации: 10.07.2010
Откуда: Крым.Керчь.
Сообщений: 132
не в сети
А что, реально, физически происходит внутри микроконтроллера во время прошивки?
 Arduino. Ознакомление
Модератор
Модератор
Дата регистрации: 26.01.2010
Откуда: Тирасполь
Сообщений: 3866
не в сети
А зачем нужно знать ответ на этот вопрос?
 Arduino. Ознакомление
Технолог
Технолог
Дата регистрации: 10.07.2010
Откуда: Крым.Керчь.
Сообщений: 132
не в сети
Почему все не исчезает, после отключения питания?
Можно, какой-то пример на пальцах, для чайника?
 Arduino. Ознакомление
Модератор
Модератор
Дата регистрации: 26.01.2010
Откуда: Тирасполь
Сообщений: 3866
не в сети
А почему на флэшке записанное не исчезает когда вытягивают ее из компьютера?
 Arduino. Ознакомление
Технолог
Технолог
Дата регистрации: 10.07.2010
Откуда: Крым.Керчь.
Сообщений: 132
не в сети
Спаасибо
Про флешку информации много.
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2576
не в сети
Буду
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
Вот прибудут датчики и дисплей с Алика, как что получится там видно будет.
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2576
не в сети
Лучше начать с простого, помигать светодиодами...
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
Это уже сделано, нужно двигаться дальше.
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2576
не в сети
Как накодить бегущий огонь на ардуине?
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7024
не в сети
Kosmonavt, у меня есть куча модулей (датчиков) для ардуино, мне не нужны, могу тебе подарить.
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7024
не в сети
КТ, если просто, то поочередно выдать сигнал на один вывод, создать паузу, погасить вывод,и так далее, если нужно только такие бегущие огни,этого достаточно, но программисты так не делают, да и бессмыслено делать на ардуино то, что сделает ие8.
Делается база эффектов, затем выбирается эффект и выводится последовательно на выводы.
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
Вот спасибо! С удовольствием приму! Буду очень рад! Как лучше сделаем? От меня человек будет в Тирасполе 25 февраля с 12 до 15 часов. Можно через маршрутку или почту. Сам приехать не могу, болею.
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
Цитата:
 KT315 пишет: Как накодить бегущий огонь на ардуине?
Накодил, вот видео; https://youtu.be/X9fQP8jWYHg

Сам код:
void setup() {
  pinMode(6OUTPUT);     //6 пин на вывод
  pinMode(7OUTPUT);     //7 пин на вывод
  pinMode(8OUTPUT);     //8 пин на вывод
  pinMode(9OUTPUT);     //9 пин на вывод
  pinMode(10OUTPUT);     //10 пин на вывод
  pinMode(11OUTPUT);     //11 пин на вывод
  pinMode(12OUTPUT);     //12 пин на вывод
  pinMode(13OUTPUT);     //13 пин на вывод
}
void loop() {
  digitalWrite(13HIGH);  // включаем светодиод на пине 13
  delay(200);              // пауза 200 мСек
  digitalWrite(13LOW);   // отключаем светодиод на пине 13
  delay(200);              // пауза 200 мСек
  digitalWrite(12HIGH);  // включаем светодиод на пине 12
  delay(200);              // пауза 200 мСек
  digitalWrite(12LOW);   // отключаем светодиод на пине 12
  delay(200);              // пауза 200 мСек
  digitalWrite(11HIGH);  // включаем светодиод на пине 11
  delay(200);              // пауза 200 мСек
  digitalWrite(11LOW);   // отключаем светодиод на пине 11
  delay(200);              // пауза 200 мСек
  digitalWrite(10HIGH);  // включаем светодиод на пине 10
  delay(200);              // пауза 200 мСек
  digitalWrite(10LOW);   // отключаем светодиод на пине 10
  delay(200);              // пауза 200 мСек
  digitalWrite(9HIGH);  // включаем светодиод на пине 9
  delay(200);              // пауза 200 мСек
  digitalWrite(9LOW);   // отключаем светодиод на пине 9
  delay(200);              // пауза 200 мСек
  digitalWrite(8HIGH);  // включаем светодиод на пине 8
  delay(200);              // пауза 200 мСек
  digitalWrite(8LOW);   // отключаем светодиод на пине 8
  delay(200);              // пауза 200 мСек
  digitalWrite(7HIGH);  // включаем светодиод на пине 7
  delay(200);              // пауза 200 мСек
  digitalWrite(7LOW);   // отключаем светодиод на пине 7
  delay(200);              // пауза 200 мСек
  digitalWrite(6HIGH);  // включаем светодиод на пине 6
  delay(200);              // пауза 200 мСек
  digitalWrite(6LOW);   // отключаем светодиод на пине 6
  delay(200);              // пауза 200 мСек
}
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7024
не в сети
Вышлю по почте.
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7024
не в сети
О, 25 февраля выходной вроде. Тогда можно будет через твоего человека.
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
Тогда отлично, 25 числа мой человек будет в Тирасполе и позвонит на ваш номер.
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
Вообще красота: https://youtu.be/f2dQRWq85x0
Нравится мне эта игрушка!
 Пример случайного включения одного из восьми светодиодов
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
long randNumber;
void setup() {
  pinMode(6OUTPUT);  //6 пин на вывод
  pinMode(7OUTPUT);  //7 пин на вывод
  pinMode(8OUTPUT);  //8 пин на вывод
  pinMode(9OUTPUT);  //9 пин на вывод
  pinMode(10OUTPUT);  //10 пин на вывод
  pinMode(11OUTPUT);  //11 пин на вывод
  pinMode(12OUTPUT);  //12 пин на вывод
  pinMode(13OUTPUT);  //13 пин на вывод
}
void loop() {
  // выводим случайное число из диапазона 6..13
  randNumber random(614);
  digitalWrite(randNumberHIGH);  // включаем светодиод на случайном пине одного из 6-13 
  delay(100);  // пауза 100 мСек
  digitalWrite(randNumberLOW);   // отключаем светодиод на случайном пине одного из 6-13
  delay(100);  // пауза 100 мСек
}
 Псевдотелевизор или имитация работы некой загадочной аппаратуры
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
long randNumber;
void setup() {
  pinMode(6OUTPUT);
  pinMode(7OUTPUT);
  pinMode(8OUTPUT);
  pinMode(9OUTPUT);
  pinMode(10OUTPUT);
  pinMode(11OUTPUT);
  pinMode(12OUTPUT);
  pinMode(13OUTPUT);
}
void loop() {
  randNumber random(614);
  digitalWrite(randNumberHIGH);
  delay(100);
  randNumber random(614);
  digitalWrite(randNumberLOW);
  randNumber random(614);
  delay(100);
  digitalWrite(randNumberHIGH);
  delay(100);
  randNumber random(614);
  digitalWrite(randNumberLOW);
  delay(100);
  randNumber random(614);
  digitalWrite(randNumberHIGH);
  delay(100);
  randNumber random(614);
  digitalWrite(randNumberLOW);
  delay(100);
  randNumber random(614);
  digitalWrite(randNumberHIGH);
  delay(100);
  randNumber random(614);
  digitalWrite(randNumberLOW);
  delay(100);
  randNumber random(614);
  digitalWrite(randNumberHIGH);
  delay(100);
  randNumber random(614);
  digitalWrite(randNumberLOW);
  delay(100);
  randNumber random(614);
  digitalWrite(randNumberHIGH);
  delay(100);
  randNumber random(614);
  digitalWrite(randNumberLOW);
  delay(100);
  randNumber random(614);
  digitalWrite(randNumberHIGH);
  delay(100);
  randNumber random(614);
  digitalWrite(randNumberLOW);
  delay(100);
  randNumber random(614);
  digitalWrite(randNumberHIGH);
  delay(100);
  randNumber random(614);
  digitalWrite(randNumberLOW);
  delay(100);
  randNumber random(614);
  digitalWrite(randNumberHIGH);
  delay(100);
  randNumber random(614);
  digitalWrite(randNumberLOW);
  delay(100);
}
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7024
не в сети
http://radio-hobby.org/modules/instruction/arduino/lang_arduino
Я начал оформлять ознакомление с ардуино, там не все, но может поможет (крестик открывает подпункты)
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.01.2009
Откуда: Tallinn
Сообщений: 2276
не в сети
А что такое "Arduino"?
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
Цитата:
А что такое "Arduino"?
http://radio-hobby.org/modules/instruction/arduino

Понравилось то, как работает Ардуино с логическим (булевым) типом данных boolean. Такой простой пример: жмём кнопку и отпускаем - включается светодиод, снова жмём кнопку и отпускаем - светодиод гаснет, удерживаем кнопку нажатой - светодиод мигает с периодом в половину секунды. Дребезг контактов кнопки устраняется введением в код паузы delay(500); в половину секунды. 
Открыть изображение в новом окне
int LEDpin 12// Светодиод на входе 12
int switchPin 5// выключатель на порту 5, замыкает на землю
 
boolean running false;
 
void setup()
{
  
pinMode(LEDpinOUTPUT);
  
pinMode(switchPinINPUT);
  
Serial.begin(9600);
}
 
void loop()
{
    if (
digitalRead(switchPin) == LOW)
  {
    
delay(500); // ждем 0.5сек
    
running = !running// меняем значение булевой переменной
    
digitalWrite(LEDpinrunning); // включаем или выключаем светодиод.
    
Serial.println(digitalRead(switchPin)); //считывание значений монитором с порта 5
  
}
}

 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
Цитата:
Я начал оформлять ознакомление с ардуино, там не все, но может поможет (крестик открывает подпункты)
Хорошо, жду остальные возможности, ведь нужно всё попробовать, а заодно пригодится в дальнейшем. А так приходится выискивать примеры, а они, бывают выложены с ошибкой, чаще забывают поставить точку с запятой ; или фигурные скобки { } и не сразу начинают у меня работать.
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7024
не в сети
Да вряд ли будет продолжение... Ты первый,кто заинтересовался.
 Могу помочь с программированием, если что. А продолжать эту тему... В комментариях к статье больше стеба, чем реальной заинтересованности.
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2576
не в сети
Круть) Только у меня ардуина без ЮСБ разъема, и я не знаю как её прошить
https://i.ebayimg.com/images/i/221030168024-0-1/s-l1000.jpg

А у тебя ардуина на атмега32?
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
Цитата:
 у меня ардуина без ЮСБ разъема, и я не знаю как её прошить
Нужен USB TTL адаптер
Видео: Прошивка arduino pro mini с помощью USB/TTL Adapter
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7024
не в сети
О, Kosmonavt, хорошо,что ты в курсе,а то я тебе там передам в том числе и Pro Mini с адаптером
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
СПАСИБО! Буду должен! Сижу на больничном, ерундой разной занимаюсь, ни как не могу дождаться 25-го числа 
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2576
не в сети
МАСТЕР, а ты больше не хочешь кодить на ардуине?((
 Arduino. Ознакомление
Модератор
Модератор
Дата регистрации: 26.01.2010
Откуда: Тирасполь
Сообщений: 3866
не в сети
Ардуина для лохов. Нормальные пацаны кодят на BBC micro:bit
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7024
не в сети
На Ардуину тоже вроде есть какой то детский редактор - конструктор
 Arduino. Ознакомление
Модератор
Модератор
Дата регистрации: 26.01.2010
Откуда: Тирасполь
Сообщений: 3866
не в сети
Ну скрэтч не совсем детский редактор. http://s4a.cat/
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
У меня скрэтч, сперва, ни как не находит плату. Оказывается нужно было загрузить прошивку на саму Ардуино, а потом уже запускать скрэтч. Дети рисуют анимашки, мультики используя костюмы (сцены) задавая им алгоритм движения с озвучкой. Блоки алгоритма имееют "вырезы" как у пазлов, это наверное, чтобы дети складывали совместимые блоки, всё как в игре.
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
Цитата:
Отправитель: MACTEP  Отправлено: 16.02.2019 9:20:55
Kosmonavt, у меня есть куча модулей (датчиков) для ардуино, мне не нужны, могу тебе подарить.
Неожиданно много разных датчиков, о существовании некоторых даже не подозревал! Все датчики в отличном состоянии, выполнены качественно. Разглядывали подарок с большим интересом, со своими домашними. Всем интересно посмотреть как они проявят себя в работе. Одним словом мы были очень удивлены и ни кто не остался равнодушным от столь щедрого подарка. ОГРОМНОЕ СПАСИБО за эти модули, я сам не ожидал! Представляю сколько впереди интересного ждёт! Приступим...
Открыть изображение в новом окне
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
Цитата:
Отправитель: KT315  Отправлено: 19.02.2019 15:05:19

Круть) Только у меня ардуина без ЮСБ разъема, и я не знаю как её прошить
https://i.ebayimg.com/images/i/221030168024-0-1/s-l1000.jpg 

Если у тебя Arduino Pro Mini Atmega328 5V-16MHz и есть адаптер, то попробуй соединить их так и заодно проверишь работу светодиода на плате:
Открыть изображение в новом окне
После подключения к USB, запусти программу Arduino и выбери всё как на рисунках ниже:
Открыть изображение в новом окне
Открыть изображение в новом окне
Открыть изображение в новом окне
Открыть изображение в новом окне
Открыть изображение в новом окне

Теперь проверим работу светодиода на плате:
Открыть изображение в новом окне
Открыть изображение в новом окне
На плате должен начать мигать светодиод с периодом в одну две секунды (исправлено).
 Arduino. Ознакомление
Модератор
Модератор
Дата регистрации: 26.01.2010
Откуда: Тирасполь
Сообщений: 3866
не в сети
Период 2 секунды
 Тест работоспособности портов и наличия КЗ между выводами Arduino
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
#define FIRST_PIN 0 // первый вывод
#define LAST_PIN 19 // последний вывод

void Test1(byte pin)
{
  if(
pin 10Serial.print(" PIN:  ");
  else 
Serial.print(" PIN: ");
  
Serial.print(pin);
  
pinMode(pinOUTPUT);
  
digitalWrite(pin0);
  
Serial.print("    LOW: ");
  if(!
digitalRead(pin)) Serial.print("OK  ");
  else 
Serial.print("FAIL");
  
digitalWrite(pin1);
  
Serial.print("  HIGH: ");
  if(
digitalRead(pin)) Serial.print("OK  "); 
  else 
Serial.print("FAIL");
  
pinMode(pinINPUT);
  
Serial.print("  PULL UP: ");
  if(
digitalRead(pin)) Serial.print("OK  ");
  else 
Serial.print("FAIL");
  
digitalWrite(pin0);
}

void Test2(byte pin)
{
  
Serial.print("     ");
  
pinMode(pinOUTPUT);
  
digitalWrite(pin1);
  
delay(5);
  if(!
digitalRead(pin))Serial.println("SHORT");
  else 
Serial.println("OK");
  
pinMode(pinINPUT); 
  
digitalWrite(pin0);

}

void setup() {
  
Serial.begin(9600); 

  
Serial.println("Test of short circuit on GND or VCC and between pins:");
  
Serial.println();
  for(
byte i FIRST_PIN<= LAST_PINi++) 
  {
    for(
byte j FIRST_PIN<= LAST_PINj++) 
    {
      
pinMode(jINPUT);
      
digitalWrite(j0);
    }
    
Test1(i);

    for(
byte j FIRST_PIN<= LAST_PINj++) 
    {
      
pinMode(jOUTPUT);
      
digitalWrite(j0);
    }
    
Test2(i);
  }

  for(
byte j FIRST_PIN<= LAST_PINj++) 
  {
    
pinMode(jINPUT);
    
digitalWrite(j0);
  }
}

void loop() {}
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2576
не в сети
Сп! Найду этот переходник и попробую!
 Часы на Arduino и TM1637
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
Открыть изображение в новом окне
/*
 * A library for the 4 digit display
 *
 * Copyright (c) 2012 seeed technology inc.
 * Website    : www.seeed.cc
 * Author     : Frankie.Chu
 * Create Time: 9 April,2012
 * Change Log :
 *
 * The MIT License (MIT)
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
#include <TimerOne.h>
#include "TM1637.h"
#define ON 1
#define OFF 0

int8_t TimeDisp[] = {0x00,0x00,0x00,0x00};
unsigned char ClockPoint 1;
unsigned char Update;
unsigned char halfsecond 0;
unsigned char second;
unsigned char minute 0;
unsigned char hour 12;


#define CLK 2//pins definitions for TM1637 and can be changed to other ports
#define DIO 3
TM1637 tm1637(CLK,DIO);

void setup()
{
  
tm1637.set();
  
tm1637.init();
  
Timer1.initialize(500000);//timing for 500ms
  
Timer1.attachInterrupt(TimingISR);//declare the interrupt serve routine:TimingISR
}
void loop()
{
  if(
Update == ON)
  {
    
TimeUpdate();
    
tm1637.display(TimeDisp);
  }

}
void TimingISR()
{
  
halfsecond ++;
  
Update ON;
  if(
halfsecond == 2){
    
second ++;
    if(
second == 60)
    {
      
minute ++;
      if(
minute == 60)
      {
        
hour ++;
        if(
hour == 24)hour 0;
        
minute 0;
      }
      
second 0;
    }
    
halfsecond 0;
  }
 
// Serial.println(second);
  
ClockPoint = (~ClockPoint) & 0x01;
}
void TimeUpdate(void)
{
  if(
ClockPoint)tm1637.point(POINT_ON);
  else 
tm1637.point(POINT_OFF);
  
TimeDisp[0] = hour 10;
  
TimeDisp[1] = hour 10;
  
TimeDisp[2] = minute 10;
  
TimeDisp[3] = minute 10;
  
Update OFF;
}
 Симуляция работы Arduino Uno в программе Proteus 8.7
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
Симуляция работы Arduino Uno (пример Blink - мигающий встроенный светодиод на плате) в программе Proteus 8.7.
Скетч пишем как обычно или берём готовый пример, но в настройках программы Arduino ставим галочку: Файл->Настройки->Компиляция.
Затем жмём проверить скетч. Отправляемся заглянуть в папку c:\Users\Kosmonavt\AppData\Local\Temp\
Здесь отыскиваем папку примерно такого названия arduino_build_747962\
Заходим в неё и ищем файл с расширением *.hex, а точнее Blink.ino.hex
Копируем его адрес, должно выглядеть так: c:\Users\Kosmonavt\AppData\Local\Temp\arduino_build_747962\Blink.ino.hex
В программе Proteus в поле деятельности добавляем плату Arduino Uno и два раза кликаем на сам процессор.
Появится окно, где кроме всего прочего нужно вставить в строку напротив Program File: то что мы скопировали выше и нажать ОК.
Затем нажать знак треугольника (Run the simulation) в левом нижнем углу окна. Всё. Светодиод должен начать мигать.
Открыть изображение в новом окне
 Тест работоспособности портов и наличия КЗ между выводами Arduino
Младший сотрудник
Младший сотрудник
Дата регистрации: 09.10.2013
Откуда:
Сообщений: 26
не в сети
слежу за развитием темы. новенького ничего не появилось??
 Простые часы на Arduino + TM1637 4-digit 7-segment display + DS3231
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
Открыть изображение в новом окне
библиотека для TM1637 4-digit 7-segment display
библиотека для модуля DS3231

Пример установки библиотек:
Открыть изображение в новом окне

Программный код:
/* Arduino example code to display a 24 hour time format clock on a TM1637 4 digit 7 segment display with a DS32321 RTC. More info: www.makerguides.com */
// Include the libraries:
#include "RTClib.h"
#include <TM1637Display.h>
// Define the connections pins:
#define CLK 2
#define DIO 3
// Create rtc and display object:
RTC_DS3231 rtc;
TM1637Display display TM1637Display(CLKDIO);
void setup() {
  // Begin serial communication at a baud rate of 9600:
  Serial.begin(9600);
  // Wait for console opening:
  delay(3000);
  // Check if RTC is connected correctly:
  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }
  // Check if the RTC lost power and if so, set the time:
  if (rtc.lostPower()) {
    Serial.println("RTC lost power, lets set the time!");
    // The following line sets the RTC to the date & time this sketch was compiled:
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    //rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }
  // Set the display brightness (0-7):
  display.setBrightness(5);
  // Clear the display:
  display.clear();
}
void loop() {
  // Get current date and time:
  DateTime now rtc.now();
  // Create time format to display:
  int displaytime = (now.hour() * 100) + now.minute();
  // Print displaytime to the Serial Monitor:
  Serial.println(displaytime);
  // Display the current time in 24 hour format with leading zeros enabled and a center colon:
  display.showNumberDecEx(displaytime0b11100000true);
  // Remove the following lines of code if you want a static instead of a blinking center colon:
  delay(1000);
  display.showNumberDec(displaytimetrue); // Prints displaytime without center colon.
  delay(1000);
}

Часы с возможностью установки времени и яркости дисплея отдельными кнопками вручную (кнопку "Уст." при этом нужно удерживать):
Открыть изображение в новом окне
#include <Wire.h> 
#include "TM1637.h"
// 7 сегментный индикатор 
#define CLK 6 
#define DIO 7 
byte brightness 7// яркость, от 0 до 7 
// кнопки 
#define keyHor 5 
#define keyMin 4 
#define keyBr 8 
#define keyPL 3 
TM1637 tm1637(CLK,DIO); 
#define DS3231_I2C_ADDRESS 0x68 
volatile boolean flag; 
///// часы .. 
byte decToBcd(byte val){ 
return ( (val/10*16) + (val%10) ); 
} 
byte bcdToDec
(byte val){ 
return ( (val/16*10) + (val%16) ); 
} 
void setDateDs3231
(byte second// 0-59 
byte minute// 0-59 
byte hour// 1-23 
byte dayOfWeek// 1-7 
byte dayOfMonth// 1-28/29/30/31 
byte month// 1-12 
byte year// 0-99 
{ 
Wire
.beginTransmission(DS3231_I2C_ADDRESS); 
Wire
.write(0); 
Wire
.write(decToBcd(second)); 
Wire
.write(decToBcd(minute)); 
Wire
.write(decToBcd(hour)); 
Wire
.write(decToBcd(dayOfWeek)); 
Wire
.write(decToBcd(dayOfMonth)); 
Wire
.write(decToBcd(month)); 
Wire
.write(decToBcd(year)); 
Wire
.endTransmission(); 
} 
void getDateDs3231
(byte *second, 
byte 
*minute, 
byte 
*hour, 
byte 
*dayOfWeek, 
byte 
*dayOfMonth, 
byte 
*month, 
byte 
*year) 
{ 
Wire
.beginTransmission(DS3231_I2C_ADDRESS); 
Wire
.write(0); 
Wire
.endTransmission(); 
Wire
.requestFrom(DS3231_I2C_ADDRESS7); 
*second bcdToDec(Wire.read() & 0x7f); 
*minute bcdToDec(Wire.read()); 
*hour bcdToDec(Wire.read() & 0x3f); 
*dayOfWeek bcdToDec(Wire.read()); 
*dayOfMonth bcdToDec(Wire.read()); 
*month bcdToDec(Wire.read()); 
*year bcdToDec(Wire.read()); 
} 
void setINT
(){ //включает выход SQW 
Wire.beginTransmission(DS3231_I2C_ADDRESS); 
Wire
.write(0x0E); 
Wire
.write(0x0); 
Wire
.endTransmission(); 
} 
void blink
() { 
digitalWrite
(12, !digitalRead(12)); 
flag 
= !flag; 
tm1637
.point(flag); 
} 
void setup
() { 
// Serial.begin(9600); 
Wire.begin(); 
pinMode
(13OUTPUT); 
pinMode
(keyHorINPUT_PULLUP); 
pinMode
(keyMinINPUT_PULLUP); 
pinMode
(keyPLINPUT_PULLUP); 
pinMode
(keyBrINPUT_PULLUP); 
tm1637
.init(); 
tm1637
.set(brightness); 
setINT
(); 
attachInterrupt
(0blinkCHANGE); 
} 
void loop
(){ 
// читаем время из модуля 
byte secondminutehourdayOfWeekdayOfMonthmonthyear; 
getDateDs3231
(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); 
// забиваем массив значениями для отправки на экран 
int8_t TimeDisp[4]; 
TimeDisp
[0] = hour 10; 
TimeDisp
[1] = hour 10; 
TimeDisp
[2] = minute 10; 
TimeDisp
[3] = minute 10; 
// обработка кнопок 
if (!digitalRead(keyHor) && !digitalRead(keyPL)){ // часы 
second 0// сбрасываем секунды 
hour++; // прибавляем единицу к часам 
if (hour 23hour 0// если вылезли за границы присваиваем 0 
setDateDs3231(secondminutehourdayOfWeekdayOfMonthmonthyear); // пишем в модуль 
delay(200); 
} 
if (!digitalRead(keyMin) && !digitalRead(keyPL)){ // минуты 
second 0; 
minute
++; 
if (minute 59minute 0; 
setDateDs3231
(secondminutehourdayOfWeekdayOfMonthmonthyear); 
delay
(200); 
} 
if (!digitalRead(keyBr) && !digitalRead(keyPL)){ 
brightness
++; 
if (brightness 7brightness 0; 
tm1637
.set(brightness); 
delay
(200); 
// отправляем массив на экран 
} 
tm1637
.display(TimeDisp); 
}
Восемь месяцев хранились в гараже эти самые самодельные часы с модулем реального времени DS3231 (ZS-042) со вставленной в него батарейкой GR2032. А сегодня принёс домой и подал на часы общее питание. Повезло, работают. А ведь перезимовка в неотапливаемом гараже при минусовой температуре поидее должна была сыграть своё чёрное дело. Мало того, точность хода часов осталась прежней - минута в минуту с часами на компьютере.
Готовый код к часам нашёл на просторах интернета. Из недостатков: неудобное управление настройкой времени. Из достоинств: простота сборки, высокая точность.
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
Открыть изображение в новом окне
Собрал на досочке второй вариант часиков. Хорошо работают, время сохраняют без основного питания.
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7024
не в сети
Kosmonavt, ты не на ГРЭС работаешь?
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2133
не в сети
Не, раньше пытался работать, а теперь меня туда не пускают.

Разное

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

Интересно

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

Похожие статьи