Страница 1 из 1

Проект Arduino (Freeduino)

Добавлено: 11 окт 2012 14:24
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

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

Добавлено: 11 окт 2012 14:42
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

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

Добавлено: 12 окт 2012 10:04
EW4DTC
Фото или видео в студию!

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

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

Byduino рулит :-)

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

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

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

Добавлено: 23 ноя 2012 17:04
EW2CC
Arduino based Kenwood TS-480 CAT sniffer
http://www.youtube.com/watch?feature=pl ... MEZd9nJmTs

Arduino всё быстрее и быстрее набирает популярность, что только на ней не делают, начиная
от примитивных простых поделок, до автопилота летающих авиамоделей :sh_ok:

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

Добавлено: 23 ноя 2012 17:07
4Z5NY
Юлик уже чо-то изобрёл!?

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

Добавлено: 21 окт 2013 12:12
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