Arduino - современные технологии в радио.

Модератор: Radiomann

Vlad95
Сообщения: 1652
Зарегистрирован: Вт апр 05, 2011 3:24 pm
Откуда: Канада, деревня Королевы

Сообщение Vlad95 » Вт дек 01, 2015 5:07 pm

Аурдино всякая всячина всего 56253 лотов от 1-го цента с бесплатной доставкой до $1200 на ebay
http://www.ebay.com/sch/i.html?_odkw=ar ... o&_sacat=0
Последний раз редактировалось Vlad95 Вт дек 01, 2015 5:09 pm, всего редактировалось 1 раз.

IG_58
Сообщения: 2231
Зарегистрирован: Вт дек 25, 2012 5:36 pm
Откуда: Германия

Сообщение IG_58 » Вт дек 01, 2015 5:07 pm

Входы и выходы.

Входы и выходы, как мы знаем, бывают дискретные и аналоговые. Дискретные предназначены для логических сигналов, имеющих 2 состояния: "Вкл/Выкл", "Да/Нет" "1 / 0".
На дискретные входы в контроллер поступают сигналы с контактов реле, с кнопок и переключателей, и т.п. дискретных источников.

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

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

Обычно с аналоговых выходов во внешние цепи поступает постоянное напряжение задаваемой контроллером величины. Например, можно подавать напряжение на варикап. Или на регулятор скорости вращения двигателя. Или на регулятор температуры паяльника. И т.п.
Но, в отличие от "взрослых" промышленых контроллеров, маленький Arduino не имеет возможности вывода во внешние цепи сигналов напряжения. Его функция аналогового выхода, на самом деле, формирует широтно-импульсный модулированный сигнал (ШИМ, PWM) с задаваемой программно скважностью. Постоянное напряжение из этого сигнала можно получить путем последующего использования интегрирующей цепочки или интегрирующего ОУ, и затем ФНЧ с соответствующей частотой среза.

У Arduino Nano имеется 14 дискретных входов/выходов, из которых 2 зарезервированы, хотя и также могут быть использованы. Каждый такой дискретный вход/выход может быть определен пользователем, как вход или как выход. Номинальное входное напряжение, подаваемое на вход, должно быть от 7 до 12В, не выше 20В. Выходной ток одного дискретного выхода не должен превышать 40мА.

У этого контроллера имеется также 8 аналоговых входов с разрешением 10 бит (т.е. может принимать 1024 различных значений). Стандартный диапазон уровней входного напряжения - от 0 до 5В постоянного тока.

Каждый из аналоговых входов может быть определен пользователем, как вход или как выход. Например, если у Вас не хватает дискретных входов для сигналов от кнопок, или дискретных выходов для управления реле, можно соответствующим образом сконфигурировать аналоговый вход и использовать его, как дискретный вход или выход.
Последний раз редактировалось IG_58 Вт дек 01, 2015 10:44 pm, всего редактировалось 3 раза.
Игорь.

Vlad95
Сообщения: 1652
Зарегистрирован: Вт апр 05, 2011 3:24 pm
Откуда: Канада, деревня Королевы

Сообщение Vlad95 » Вт дек 01, 2015 5:14 pm

Аурдино нано на ебэй

торговатьcя с 1 цента
http://www.ebay.com/itm/USB-Nano-V3-0-A ... SwA4dWKN59

купить сейчас $1.45
http://www.ebay.com/itm/New-Pro-Mini-at ... SwgQ9VzBlt

Доставка бесплатная

virusbk
Сообщения: 361
Зарегистрирован: Ср фев 18, 2015 11:20 pm
Откуда: Москва

Сообщение virusbk » Вт дек 01, 2015 5:38 pm

Очень интересная тема.
Давно хотелось попробовать, благо в свое время я увлекался программированием на Ассемблере и С++. Да и сейчас балуюсь, что бы мозги не закисли.
Может быть кто-нибудь поделится своим видением, каким образом можно можно использовать тот же Arduino в реальной жизни?!
Конечно не сразу что-то очень сложное, а попроще.
Например, как вариант, данные контролер можно взять за основу для часов на лампах ИН-18 и т.п.?!
Такие часы и сам подумывал сделать.
Константин.
Знал бы прикуп, жил бы в Сочи!

Аватара пользователя
Radiomann
Сообщения: 8043
Зарегистрирован: Чт мар 03, 2011 11:02 pm

Сообщение Radiomann » Вт дек 01, 2015 5:57 pm

Игорь, VFO, о котором идет речь, маленький китайский модуль DDS, построенный на чипе AD9850 имеет разное исполнение.
Я нашёл на просторах интернета как минимум два.

Вот один такой, отличающийся по внешнему виду от того, что на твоей катинке.
Он подойдёт?

2 Sinus und 2 Rechteckwellenausgang
Frequenzbereich: 0-40MHz
Rechteckwellenausgabe Bereich: 0-1MHz
Beschäftigen 70MHz Tiefpassfilter, die eine bessere Wellenform SN-Verhältnis produziert
Dateneingabe von seriellen und parallelen Schnittstellen können über einen Jumper gewählt werden
Кутник Фёдор Фридрихович.
Ищу заднюю крышку VEF-Spidola или Spidola. Можно корпус-донор.

https://www.youtube.com/watch?v=65jaKGOuNs0
https://www.youtube.com/watch?v=ovkn_8sFfes

Аватара пользователя
Andrey.I
Сообщения: 1734
Зарегистрирован: Вт июл 02, 2013 1:21 pm
Откуда: Москва
Контактная информация:

Сообщение Andrey.I » Вт дек 01, 2015 6:06 pm

Игорь здравствуйте!
Спасибо за тему, интересно. Скажите, почему вы выбрали Arduino Nano, а скажем не Arduino Uno?
С уважением, Андрей

IG_58
Сообщения: 2231
Зарегистрирован: Вт дек 25, 2012 5:36 pm
Откуда: Германия

Сообщение IG_58 » Вт дек 01, 2015 6:21 pm

virusbk,

ИН-18 - это газоразрядные индикаторы, Ардуино не держит напряжение выше 20 вольт. Т.е., Вам понадобятся внешние высоковольтные ключи, выдерживающие это напряжение. Далее, хватит ли Вам количества входов-вывходов Arduino? У Nano их 20-22 суммарно входов и выходов. Можно, конечно, мультиплексировать шину индикаторов.
Но ключи нужны всё равно.

Radiomann
Я использую именно такой, внешний вид которого привожу на фото. Второй модуль, как я понял, имеет ошибки в выходном ФНЧ.

Изображение

Andrey.I
Здравствуйте, Андрей!
Я использую Nano, т.к. он гораздо компактнее, а по функциям совершенно идентичен Uno.
У меня есть и Uno, никаких отличий от Nano в работе я не заметил.
Игорь.

Аватара пользователя
Radiomann
Сообщения: 8043
Зарегистрирован: Чт мар 03, 2011 11:02 pm

Сообщение Radiomann » Вт дек 01, 2015 7:06 pm

IG_58 писал(а): Я использую именно такой, внешний вид которого привожу на фото. Второй модуль, как я понял, имеет ошибки в выходном ФНЧ.

Ясно, спасибо. Буду искать такой.
Кутник Фёдор Фридрихович.
Ищу заднюю крышку VEF-Spidola или Spidola. Можно корпус-донор.

https://www.youtube.com/watch?v=65jaKGOuNs0
https://www.youtube.com/watch?v=ovkn_8sFfes

IG_58
Сообщения: 2231
Зарегистрирован: Вт дек 25, 2012 5:36 pm
Откуда: Германия

Сообщение IG_58 » Ср дек 02, 2015 12:56 am

Программное обеспечение.

"Взрослые" промышленные программируемые контроллеры, ориентированные на нужды промышленной автоматизации, как правило, программируются на специализированных унифицированных языках, которые (с подачи компании Allen-Bradley) стандартизированы в международной электротехнической комиссии и соответствуют стандарту IEC_61131-3. Программы на таких языках, в зависимости от сферы применения и специфики объекта управления, выглядят, как электрическая релейно-контакторная схема, или как набор функциональных блоков, или как выраженная в графическом виде блок-схема устройства, или, реже, как рецепт - перечень инструкций. Это сделано для того, чтобы любой инженер-электронщик или электротехник, занимающийся разработкой систем управления или их эксплуатацией, мог быстро и в привычном для себя виде создать и/или изменить рабочую программу контроллера, идентифицировать ошибки и аварии, быстро получить диагностику.

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

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

Продолжение следует.
Игорь.

virusbk
Сообщения: 361
Зарегистрирован: Ср фев 18, 2015 11:20 pm
Откуда: Москва

Сообщение virusbk » Ср дек 02, 2015 9:43 am

IG_58
Это понятно. Еще можно и использовать дешифраторы, например, К155ИД1.
Буду пока изучать материалы, благо их в Интернете куча..
http://lukjanow.ru/2013/05/nixie-clock/ к примеру.
Константин.
Знал бы прикуп, жил бы в Сочи!

Аватара пользователя
Radiomann
Сообщения: 8043
Зарегистрирован: Чт мар 03, 2011 11:02 pm

Сообщение Radiomann » Ср дек 02, 2015 10:57 am

Очень интересно Игорь.
Когда-то лет 25 назад я начинал заниматься программированием,
даже прошёл специальный курс обучения здесь в Германии от AEG,
программирования именно систем контроля производственных процессов, но потом забросил.
Видимо напрасно.
Кутник Фёдор Фридрихович.
Ищу заднюю крышку VEF-Spidola или Spidola. Можно корпус-донор.

https://www.youtube.com/watch?v=65jaKGOuNs0
https://www.youtube.com/watch?v=ovkn_8sFfes

IG_58
Сообщения: 2231
Зарегистрирован: Вт дек 25, 2012 5:36 pm
Откуда: Германия

Сообщение IG_58 » Ср дек 02, 2015 11:54 am

Да, Федор, как раз тогда американская Modicon входила в состав немецкого AEG. А перед приобретением компании Modicon у AEG были свои, разщработанные в Германии серии программируемых контроллеров А120 и др, которые сразу же после приобретения Modicon были свернуты. А еще через несколько лет AEG развалилась, свой алый логотип продали кетайцам (которые его всё еще иногда лепят на свои магнитолы, тостеры и вентиляторы), а контроллерную часть концерна приобрел (и впоследствии загубил) французский Schneider Electric, после чего бренд Modicon прекратил свое существование.
Игорь.

IG_58
Сообщения: 2231
Зарегистрирован: Вт дек 25, 2012 5:36 pm
Откуда: Германия

Сообщение IG_58 » Ср дек 02, 2015 1:42 pm

Программное обеспечение.

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

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

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

Комментарий программой Arduino ни кодом программы, ни данными не считается, игнорируется.

Комментарий - это строка, расположенная после двух символов косой черты:
// Это комментарий.

Если для комментария нужно больше места, то можно так: всё, что расположено, между парой сиволов /* и парой символов */ - это комментарий:

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


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

Код: Выделить всё

/*
  Blink - это один из стандартных примеров программы (cкетча) для Arduino,  очень простая программа, которая циклически включает светодиод на 1 секунду, а потом на 1 секунду выключает, т.е. мигает с периодом 2с и скважностью 2.

Большинство контроллерв Arduino имеют на плате светодиод, которым можно управлять. На Uno, Leonardo, Nano он подклчен к дискретному пину D13. 

Формальная оговорка: этоткод опубликован на общественном домене и модифицирован  8 мая 2014г. автором по имени Scott Fitzgerald.
Modified on 02-12-2015 by IG_58  
*/

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

#define MAXFREQ 30000000 // Определим осмысленное символьное наименование для максимальной частоты, присвоим ей начальное значение 30 000 000. 
#define MINFREQ 1000000 // Минимальной частоте дадим имя MINFREQ и присвоим значение 1 000 000
#define TIME_DISPLAY_RATE 1500 // Определим период времени обновления информации на дисплееравным 1500мс и дадим этой переменой осмысленное имя TIME_DISPLAY_RATE	
... и т.п.

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

"KSGrplq" - это плохое символьное имя 
"S-Meter_Actual_Value" - это неплохое имя.

В именах структур данных допустимы только латинские буквы.  

В данной программе никаких определений данных нет, она очень проста.
*/


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

void setup() 
{ // Эта фигурная скобка открывает секцию
  // Инициализируем дискретный пин D13, говорим ему, что он будет  работать, как выходной сигнал.
  pinMode(13, OUTPUT);
} // Эта фигурная скобка закрывает секцию


/* Далее следует основной цикл программы.  Эта секция кода выполняется от начала до конца циклически, бесконечно, пока контроллер не будет выключен или не будет нажата кнопка сброса "Reset".
*/

void loop() 
{  // Эта фигурная скобка открывает секцию, цикл начинается
  digitalWrite(13, HIGH);   // Подаем сигнал на дискретный выход D13. Светодиод включается
  delay(1000);              // Ждем 1000 миллисекунд
  digitalWrite(13, LOW);    // Выключаем светодиод. 
  delay(1000);              // Снова ждем 1 секунду
} // Эта фигурная скобка закрывает цикл.

Последний раз редактировалось IG_58 Ср дек 02, 2015 2:30 pm, всего редактировалось 7 раз.
Игорь.

Аватара пользователя
Radiomann
Сообщения: 8043
Зарегистрирован: Чт мар 03, 2011 11:02 pm

Сообщение Radiomann » Ср дек 02, 2015 2:11 pm

С комментариями теперь ясно.
Кутник Фёдор Фридрихович.
Ищу заднюю крышку VEF-Spidola или Spidola. Можно корпус-донор.

https://www.youtube.com/watch?v=65jaKGOuNs0
https://www.youtube.com/watch?v=ovkn_8sFfes

IG_58
Сообщения: 2231
Зарегистрирован: Вт дек 25, 2012 5:36 pm
Откуда: Германия

Сообщение IG_58 » Ср дек 02, 2015 2:14 pm

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

Ответить

Вернуться в «Hot Rod Radio»