Разделы

В сети

Пользователей: 147
Из них просматривают:
Аналоги: 47. Видео: 2. Галерея: 1. Даташиты: 55. Инструкции: 1. Новости: 8. Остальное: 5. Ошибки: 1. Партнёры: 1. Программы: 1. Производители: 2. Профиль пользователя: 1. Форум: 22.
Участников: 2
Гостей: 145

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

Партнёры


Партнёры

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

Arduino UNO
Раздел: Arduino

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

Написал MACTEP 20.08.2016 21:10:00 (Просмотров: 14811)
Эта статья открывает рубрику 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
Откуда: Тирасполь
Сообщений: 2126
не в сети
Цитата:
азъем для питаня. Кнапку сброса.
Эм...ну как бы вы поняли...
 Arduino. Ознакомление
Модератор
Модератор
Дата регистрации: 25.02.2009
Откуда: ПМР Рыбница
Сообщений: 2070
не в сети
Гром, чем придираться к опечаткам, лучше бы написал интересную статью.
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7049
не в сети
Гром, что мы должны понять?
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 18.12.2008
Откуда: Тирасполь
Сообщений: 2126
не в сети
грамматические ошибки
Цитата:
Для работы с Arduino необходимо скачать програмное обеспечение на сайте Arduino
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7049
не в сети
Гром, мне надо клаву менять, вся стертая, глючит. Подсказывай в личке. Чтоб не засорять комменты.
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7049
не в сети
Собрал часы на Arduino
Открыть изображение в новом окне
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.01.2009
Откуда: Tallinn
Сообщений: 2298
не в сети
OOOOOOOOOO!
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 17.07.2010
Откуда: Спиртогонск
Сообщений: 2088
не в сети
А чего так мелко-то?
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7049
не в сети
Всмысле мелко? Этот индикатор воспроизводит знаки в своих знакоместах.
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 17.07.2010
Откуда: Спиртогонск
Сообщений: 2088
не в сети
Цифры мелкие и где-то в углу. В лупу его разглядывать-что ли?
Надо чтобы цифры были покрупнее (по высоте на весь экран). А то как-то не смотрится и неудобно.
А вообще, сам по себе индикатор хорош, но думается, он может отображать и большие символы (одна цифра на четыре знакоместа).
Или это какие-то специальные часы?
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7049
не в сети
Ну не даром же выбран двухстрочный индикатор. В одной строчке будут данные о погоде, во второй время. Это же Arduino Сам творишь, что хочешь.  Если умеешь. А вы с Громом, судя по всему, годитесь только в качестве экспертов...
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 18.12.2008
Откуда: Тирасполь
Сообщений: 2126
не в сети
Ахах, мелко я думал в смысле почему Мастер такой мелочный проект сделал...надо было управление ядерным реактором, или синхрофазотроном сделать. На крайняк уже управление инкубатором.
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2599
не в сети
Я так и не понял, а откуда код надо брать, который после фразы "Запишем первый скетч"?))
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7049
не в сети
1. Самому писать
2. Из библиотеки Arduino
3. Найти готовый скетч в интернете

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

Открыть изображение в новом окне
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2599
не в сети
Если на основе этой платы что-то конструировать, само устройство же выйдет дорогим?
То есть плата только чтобы учиться кодить на самой плате? Или все коды можно потом в ту же Атмега328 прошивать и она будет работать?
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 17.07.2010
Откуда: Спиртогонск
Сообщений: 2088
не в сети
А, они ещё и погоду показывают. Тогда другое дело.
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.01.2009
Откуда: Tallinn
Сообщений: 2298
не в сети
А UHD телик можно сделать,на 3 светиках?
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7049
не в сети
КТ, Эта плата стоит около 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
Сообщений: 2298
не в сети
Raspberry Pi 3 крути,а с этим шо делать?
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7049
не в сети
wolf170571, это разные вещи. Малинка практически полноценный компьютер, а Arduino - всего лишь ATMega328.
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2599
не в сети
Тады учи кодить.


ПС:  где обещанные 40 девственниц, за статьи, которые я писал для сайта?
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 17.07.2010
Откуда: Спиртогонск
Сообщений: 2088
не в сети
Только резиновых.
 Arduino. Ознакомление
Старший сотрудник
Старший сотрудник
Дата регистрации: 07.01.2010
Откуда:
Сообщений: 124
не в сети
Arduino это устаревшая платформа как и AVR. Даже близко не сравнится с STM32.
 Arduino. Ознакомление
Модератор
Модератор
Дата регистрации: 26.01.2010
Откуда: Тирасполь
Сообщений: 3892
не в сети
Мля...  К слову, библиотеки периферии от стм32 намного рукожопее библиотек ардуино. Да и ниши у стм и ардуино разные.
 Arduino. Ознакомление
Старший сотрудник
Старший сотрудник
Дата регистрации: 07.01.2010
Откуда:
Сообщений: 124
не в сети
Я видел библиотеки ардуины. Это "шедевр" использовать C++ с динамическим созданием объектов в МК со столь ограниченными ресурсами. Еще один "шедевр" это сплошной ногодрыг даже в тех случаях когда задачу можно решить аппаратно.
Да и дело не в библиотеках. Процессорное ядро и периферия в STM32 намного продвинутее чем в ARV ATmega на которой построена ардуина.
https://geektimes.ru/post/255796/
https://geektimes.ru/post/263210/
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
Вот тоже обзавёлся этой китайской платой. Пока что получилось заставить мигать светодиоды. Забавная вещица.
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2599
не в сети
Будешь по ней статьи писать? 
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
А что, будешь читать?
 Arduino. Ознакомление
Технолог
Технолог
Дата регистрации: 10.07.2010
Откуда: Крым.Керчь.
Сообщений: 134
не в сети
А что, реально, физически происходит внутри микроконтроллера во время прошивки?
 Arduino. Ознакомление
Модератор
Модератор
Дата регистрации: 26.01.2010
Откуда: Тирасполь
Сообщений: 3892
не в сети
А зачем нужно знать ответ на этот вопрос?
 Arduino. Ознакомление
Технолог
Технолог
Дата регистрации: 10.07.2010
Откуда: Крым.Керчь.
Сообщений: 134
не в сети
Почему все не исчезает, после отключения питания?
Можно, какой-то пример на пальцах, для чайника?
 Arduino. Ознакомление
Модератор
Модератор
Дата регистрации: 26.01.2010
Откуда: Тирасполь
Сообщений: 3892
не в сети
А почему на флэшке записанное не исчезает когда вытягивают ее из компьютера?
 Arduino. Ознакомление
Технолог
Технолог
Дата регистрации: 10.07.2010
Откуда: Крым.Керчь.
Сообщений: 134
не в сети
Спаасибо
Про флешку информации много.
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2599
не в сети
Буду
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
Вот прибудут датчики и дисплей с Алика, как что получится там видно будет.
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2599
не в сети
Лучше начать с простого, помигать светодиодами...
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
Это уже сделано, нужно двигаться дальше.
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2599
не в сети
Как накодить бегущий огонь на ардуине?
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7049
не в сети
Kosmonavt, у меня есть куча модулей (датчиков) для ардуино, мне не нужны, могу тебе подарить.
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7049
не в сети
КТ, если просто, то поочередно выдать сигнал на один вывод, создать паузу, погасить вывод,и так далее, если нужно только такие бегущие огни,этого достаточно, но программисты так не делают, да и бессмыслено делать на ардуино то, что сделает ие8.
Делается база эффектов, затем выбирается эффект и выводится последовательно на выводы.
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
Вот спасибо! С удовольствием приму! Буду очень рад! Как лучше сделаем? От меня человек будет в Тирасполе 25 февраля с 12 до 15 часов. Можно через маршрутку или почту. Сам приехать не могу, болею.
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
Цитата:
 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
Откуда: Тирасполь
Сообщений: 7049
не в сети
Вышлю по почте.
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7049
не в сети
О, 25 февраля выходной вроде. Тогда можно будет через твоего человека.
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
Тогда отлично, 25 числа мой человек будет в Тирасполе и позвонит на ваш номер.
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
Вообще красота: https://youtu.be/f2dQRWq85x0
Нравится мне эта игрушка!
 Пример случайного включения одного из восьми светодиодов
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
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
Откуда: Днестровск
Сообщений: 2262
не в сети
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
Откуда: Тирасполь
Сообщений: 7049
не в сети
http://radio-hobby.org/modules/instruction/arduino/lang_arduino
Я начал оформлять ознакомление с ардуино, там не все, но может поможет (крестик открывает подпункты)
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.01.2009
Откуда: Tallinn
Сообщений: 2298
не в сети
А что такое "Arduino"?
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
Цитата:
А что такое "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
Откуда: Днестровск
Сообщений: 2262
не в сети
Цитата:
Я начал оформлять ознакомление с ардуино, там не все, но может поможет (крестик открывает подпункты)
Хорошо, жду остальные возможности, ведь нужно всё попробовать, а заодно пригодится в дальнейшем. А так приходится выискивать примеры, а они, бывают выложены с ошибкой, чаще забывают поставить точку с запятой ; или фигурные скобки { } и не сразу начинают у меня работать.
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7049
не в сети
Да вряд ли будет продолжение... Ты первый,кто заинтересовался.
 Могу помочь с программированием, если что. А продолжать эту тему... В комментариях к статье больше стеба, чем реальной заинтересованности.
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2599
не в сети
Круть) Только у меня ардуина без ЮСБ разъема, и я не знаю как её прошить
https://i.ebayimg.com/images/i/221030168024-0-1/s-l1000.jpg

А у тебя ардуина на атмега32?
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
Цитата:
 у меня ардуина без ЮСБ разъема, и я не знаю как её прошить
Нужен USB TTL адаптер
Видео: Прошивка arduino pro mini с помощью USB/TTL Adapter
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7049
не в сети
О, Kosmonavt, хорошо,что ты в курсе,а то я тебе там передам в том числе и Pro Mini с адаптером
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
СПАСИБО! Буду должен! Сижу на больничном, ерундой разной занимаюсь, ни как не могу дождаться 25-го числа 
 Arduino. Ознакомление
V.I.P.
V.I.P.
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2599
не в сети
МАСТЕР, а ты больше не хочешь кодить на ардуине?((
 Arduino. Ознакомление
Модератор
Модератор
Дата регистрации: 26.01.2010
Откуда: Тирасполь
Сообщений: 3892
не в сети
Ардуина для лохов. Нормальные пацаны кодят на BBC micro:bit
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7049
не в сети
На Ардуину тоже вроде есть какой то детский редактор - конструктор
 Arduino. Ознакомление
Модератор
Модератор
Дата регистрации: 26.01.2010
Откуда: Тирасполь
Сообщений: 3892
не в сети
Ну скрэтч не совсем детский редактор. http://s4a.cat/
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
У меня скрэтч, сперва, ни как не находит плату. Оказывается нужно было загрузить прошивку на саму Ардуино, а потом уже запускать скрэтч. Дети рисуют анимашки, мультики используя костюмы (сцены) задавая им алгоритм движения с озвучкой. Блоки алгоритма имееют "вырезы" как у пазлов, это наверное, чтобы дети складывали совместимые блоки, всё как в игре.
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
Цитата:
Отправитель: MACTEP  Отправлено: 16.02.2019 9:20:55
Kosmonavt, у меня есть куча модулей (датчиков) для ардуино, мне не нужны, могу тебе подарить.
Неожиданно много разных датчиков, о существовании некоторых даже не подозревал! Все датчики в отличном состоянии, выполнены качественно. Разглядывали подарок с большим интересом, со своими домашними. Всем интересно посмотреть как они проявят себя в работе. Одним словом мы были очень удивлены и ни кто не остался равнодушным от столь щедрого подарка. ОГРОМНОЕ СПАСИБО за эти модули, я сам не ожидал! Представляю сколько впереди интересного ждёт! Приступим...
Открыть изображение в новом окне
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
Цитата:
Отправитель: 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
Откуда: Тирасполь
Сообщений: 3892
не в сети
Период 2 секунды
 Тест работоспособности портов и наличия КЗ между выводами Arduino
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
#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
Откуда: Мухосранск
Сообщений: 2599
не в сети
Сп! Найду этот переходник и попробую!
 Часы на Arduino и TM1637
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
Открыть изображение в новом окне
/*
 * 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
Откуда: Днестровск
Сообщений: 2262
не в сети
Симуляция работы 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
Откуда:
Сообщений: 36
не в сети
слежу за развитием темы. новенького ничего не появилось??
 Простые часы на Arduino + TM1637 4-digit 7-segment display + DS3231
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
Открыть изображение в новом окне
библиотека для 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
Откуда: Днестровск
Сообщений: 2262
не в сети
Открыть изображение в новом окне
Собрал на досочке второй вариант часиков. Хорошо работают, время сохраняют без основного питания.
 Arduino. Ознакомление
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7049
не в сети
Kosmonavt, ты не на ГРЭС работаешь?
 Arduino. Ознакомление
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2262
не в сети
Не, раньше пытался работать, а теперь меня туда не пускают.

Разное

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

Интересно

Если на шприц отсоса припоя надеть отрезок силиконовой трубки.
То работать шприц станет лучше,некоторое количество припоя просто останутся в трубке,откуда и удалить их проще,так что при взводе шприца меньше сыпятся на плату остатки припоя из шприца.

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