Проект Arduino (Freeduino)

Ответить
  • Автор
  • Сообщение
Не в сети
Аватара пользователя
Site Admin
Сообщения: 2556
Зарегистрирован: 26 май 2009 04:38
Откуда: РБ

Проект Arduino (Freeduino)

Сообщение EW2CC »

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

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

Микроконтроллер на плате программируется при помощи языка Arduino (основан на языке Wiring) и среды разработки Arduino (основана на среде Processing). Проекты устройств, основанные на Arduino, могут работать самостоятельно, либо же взаимодействовать с программным обеспечением на компьютере (напр.: Flash, Processing, MaxMSP). Платы могут быть собраны пользователем самостоятельно или куплены в сборе. Программное обеспечение доступно для бесплатного скачивания. Исходные чертежи схем (файлы CAD) являются общедоступными, пользователи могут применять их по своему усмотрению.

Плата Arduino состоит из микроконтроллера Atmel AVR (ATmega328 и ATmega168 в новых версиях и ATmega8 в старых) и элементной обвязки для программирования и интеграции с другими схемами. На каждой плате обязательно присутствуют линейный стабилизатор напряжения 5 В и 16 МГц кварцевый генератор (в некоторых версиях керамический резонатор). В микроконтроллер предварительно прошит загрузчик, поэтому внешний программатор не нужен.

Простой пример изготовления в домашних условиях http://robocraft.ru/blog/arduino/19.html
Вложения
arduino-cheat-sheet.png
arduino-duemilanove-schematic.pdf
(47.36 КБ) 1548 скачиваний
Последний раз редактировалось EW2CC 11 окт 2012 15:04, всего редактировалось 2 раза.
_________________
73! Сергей ex.EU2A, UC2CBT, UC2-009-602, Citizen Band - Лайнер, 251. On the air since 1980
Site Admin QRZ.BY

Не в сети
Аватара пользователя
Site Admin
Сообщения: 2556
Зарегистрирован: 26 май 2009 04:38
Откуда: РБ

Re: Проект Arduini (Freeduino)

Сообщение EW2CC »

При изготовлении блока питания для УМ я столкнулся с проблемой правильного включения и выключения
напряжений питания лампы ГУ-43Б. Реализовывать всё это хозяйство на множественных реле времени у меня не было желания. Решил прокансультироватся у Володи EW1ABZ, как лучше всё это реализовать на МК. Вот он и подтолкнул меня
к этой интересной теме.

Вот моя не большая программа реализованная на этом проекте (просьба не пинать, это первая моя программа на Atmega8)
В настоящий момент это уже реализовано в железе и работает !

#include <Bounce.h>
Bounce ON = Bounce(2, 50); //создаем экземпляр класса Bounce для 2 вывода антидребезг
Bounce OFF = Bounce(3, 100); //создаем экземпляр класса Bounce для 3 вывода антидребезг
/*
Включение питающих напряжений ГУ-43Б производится в следующей последовательности:
1 Включить вентилятор
2 подать напряжение накала
3 подать отрицательное напряжение на первую сетку;
4 подать напряжение на анод;
5 подать напряжение на экранную сетку.
При выключении питающих напряжений в первую очередь выключить напряжение второй сетки,
затем напряжение на аноде, затем в любой последовательности напряжение на первой сетке и напряжение накала.
*/


// set pin numbers:
const int pinPowOn = 2; // включение кнопка на pin 2
const int pinPowOff = 3; // выключение pin 3
const int pinNakal1 = 5; //накал предварительный
const int pinNakal2 = 6; //накал полный
const int pinVent = 4; //вентилятор
//const int pinSme = 7; //смещение ????
const int pinEkran = 8; //экранная сетка
const int pinAnod1 = 10; //анод предварительный
const int pinAnod2 = 12; //анод полный
const int pinPTT_OK = 9; // Разрешение на PTT
const int pin13 = 13; // ******** временно для отладки

boolean StatusPowOn = LOW;
boolean StatusPowOff = LOW;
boolean StatusPTT_OK = LOW;
boolean StatusNakal = LOW;
boolean StatusVent = LOW;
byte st = 0;
long previousMillis = 0;
long interval = 240000; //4 min
long lastMillis = 0;

void setup()
{
pinMode(pinPowOn, INPUT_PULLUP); //с подтягивающими резисторами
pinMode(pinPowOff, INPUT_PULLUP); // - "" -
pinMode(pinNakal1, OUTPUT);
pinMode(pinNakal2, OUTPUT);
pinMode(pinVent, OUTPUT);
pinMode(pinEkran, OUTPUT);
pinMode(pinAnod1, OUTPUT);
pinMode(pinAnod2, OUTPUT);
pinMode(pinPTT_OK, OUTPUT);
pinMode(pin13, OUTPUT); ////********

}

void loop()
{

unsigned long currentMillis = millis();

if (OFF.update()) {st = st + 1;} // считаем нажатия

if (ON.update() && StatusPTT_OK == LOW && StatusNakal == LOW) //START 1
{
digitalWrite(pinVent, HIGH); // включение вентилятора
digitalWrite(pinNakal1, HIGH); // включение пред.накала
delay(1000); //задержка прогрева накала 1 - 1,5 сек.
digitalWrite(pinNakal1, LOW); // выключение пред. накала
digitalWrite(pinNakal2, HIGH); //включение полного накала
delay(100);
StatusNakal = HIGH;
StatusPTT_OK = HIGH;
StatusVent = HIGH;
previousMillis = currentMillis;
st = 0;
if (previousMillis - lastMillis < interval / 2) {previousMillis = previousMillis * 2;} // если время выключения менее 1/2 то уменьшаем время прогрева накала
}

if(currentMillis - previousMillis > interval && StatusNakal == HIGH) // START 2 с задержкой в переменной interval
{
digitalWrite(pinAnod1, HIGH); //включение планое анода
delay(500);
digitalWrite(pinAnod1, LOW);
digitalWrite(pinAnod2, HIGH); //
delay(100);
digitalWrite(pinEkran, HIGH); //включение экранного напряжения
digitalWrite(pinPTT_OK, HIGH); //разрешение на PTT
StatusPTT_OK = HIGH;
StatusNakal = LOW;
}


if (st == 1) //STOP 1
{
digitalWrite(pinPTT_OK, LOW);
digitalWrite(pinEkran, LOW);
delay(100);
digitalWrite(pinAnod2, LOW);
}

if (st == 3) //STOP 2
{
st = 0;
digitalWrite(pinNakal2, LOW);
StatusVent = LOW;
StatusPTT_OK = LOW;
StatusNakal = LOW;
previousMillis = currentMillis;
lastMillis = previousMillis;
}

if(currentMillis - previousMillis > interval && StatusVent == LOW && StatusPTT_OK ==LOW ) // STOP вентилятор с задержкой в переменной interval
{
digitalWrite(pinVent, LOW);
StatusVent = HIGH;
StatusPTT_OK = LOW;
StatusNakal = LOW;
}

}// end
Последний раз редактировалось EW2CC 12 окт 2012 17:34, всего редактировалось 1 раз.
_________________
73! Сергей ex.EU2A, UC2CBT, UC2-009-602, Citizen Band - Лайнер, 251. On the air since 1980
Site Admin QRZ.BY

Не в сети
Аватара пользователя
Сообщения: 67
Зарегистрирован: 11 май 2012 13:07
Откуда: Гродно

Re: Проект Arduino (Freeduino)

Сообщение EW4DTC »

Фото или видео в студию!
_________________
Вадим.

Не в сети
Аватара пользователя
Site Admin
Сообщения: 2556
Зарегистрирован: 26 май 2009 04:38
Откуда: РБ

Re: Проект Arduino (Freeduino)

Сообщение EW2CC »

Вот
Это пока на макетной плате. Блок реле нашел у себя в закромах и приспособил, как раз что надо !
Постоянно приходят новые идеи, шлифуем алгоритм
Релюшки счелкают как надо. :dan_ser:

Byduino рулит :-)
Вложения
MYrele140.JPG
_________________
73! Сергей ex.EU2A, UC2CBT, UC2-009-602, Citizen Band - Лайнер, 251. On the air since 1980
Site Admin QRZ.BY

Не в сети
Аватара пользователя
Сообщения: 645
Зарегистрирован: 12 ноя 2011 14:02
Откуда: KO13WQ
Контактная информация:

Re: Проект Arduino (Freeduino)

Сообщение EW4RF »

http://www.qsl.net/on7eq/projects/arduino_pwr_swr.htm - ксв метр на основе ардуино,
вообще то это плата для HAM'ов имеет огромный потенциал
Вот тут описание простого антенного тюнера на основе ардуинки:) и при том без датчика
http://zinvit.com/arduino.shtml
_________________
ЕW4RF 73:)

Не в сети
Аватара пользователя
Site Admin
Сообщения: 2556
Зарегистрирован: 26 май 2009 04:38
Откуда: РБ

Re: Проект Arduino (Freeduino)

Сообщение EW2CC »

Arduino based Kenwood TS-480 CAT sniffer
http://www.youtube.com/watch?feature=pl ... MEZd9nJmTs

Arduino всё быстрее и быстрее набирает популярность, что только на ней не делают, начиная
от примитивных простых поделок, до автопилота летающих авиамоделей :sh_ok:
Последний раз редактировалось EW2CC 23 ноя 2012 17:09, всего редактировалось 1 раз.
_________________
73! Сергей ex.EU2A, UC2CBT, UC2-009-602, Citizen Band - Лайнер, 251. On the air since 1980
Site Admin QRZ.BY

Не в сети
Аватара пользователя
Сообщения: 201
Зарегистрирован: 22 дек 2010 15:35
Откуда: KM72LT
Контактная информация:

Re: Проект Arduino (Freeduino)

Сообщение 4Z5NY »

Юлик уже чо-то изобрёл!?
_________________
73! Лёвка ex EU1AM

Не в сети
Аватара пользователя
Сообщения: 189
Зарегистрирован: 25 окт 2011 07:26
Откуда: Вiцебск

Re: Проект Arduino (Freeduino)

Сообщение EV6DX »

CW Contest ключ - NanoKeyer на основе Arduino.
http://nanokeyer.wordpress.com/nanokeyer-info/

Основные характеристики (K3NG Firmware):

CW скорость регулируется от 1 до 999 слов в минуту
K1EL Winkeyer интерфейс эмуляции протокола
Поддерживается основными приложениями регистрации (например N1MM, HRD и т.д. В K1EL Winkeyer режиме через USB порт)
SO2R совместимы через K1EL Winkeyer 2 эмуляции протокола
PS2 интерфейс клавиатуры для работы клавиатуры CW без компьютера
PTT с настраиваемыми параметрами
До 12 мемори с макро-и серийный номерами поддержки
QRSS и HSCW
Iambic А и В, и BuG Ultimatic режим
Энергонезависимое хранение большинства параметров
и многое другое ....
Подробнее - http://nanokeyer.files.wordpress.com/20 ... rev-c2.pdf
_________________
73!Виктор -EV6DX RU-QRP# 197 AGB#112
Пойми, студент — теперь к людЯм надо помягше, а на вопросы смотреть — ширше
Ответить