Как изменить частоту мигания мигающего светодиода

Всем привет! Купил себе стартовый набор Ардуино, чтобы играться, самому и с дочерью :) Опыта в программировании нет никакого вообще (BASIC в 7 классе не в счёт), но не гуманитарий, так что осваиваюсь.

Смена частоты моргания диодом по нажатию кнопки

Offline

Зарегистрирован: 21.12.2015

Всем привет!

Купил себе стартовый набор Ардуино, чтобы играться, самому и с дочерью :) Опыта в программировании нет никакого вообще (BASIC в 7 классе не в счёт), но не гуманитарий, так что осваиваюсь. Собственно вопрос: написал программу, хочу чтобы она моргала светодиодом с частотой 10 Гц, при однократном нажатии кнопки переходила на частоту 2 Гц, по следующему нажатию выключала диод, и опять по кругу. Вот листинг:

int GREEN1 = 3; //контакт 3 для светодиода
int BUTTON = 2; //контакт 2 для кнопки
boolean lastButton = LOW; //переменная для хранения последнего состояния кнопки
boolean currentButton = LOW; //переменная для хранения текущего статуса кнопки
int lmode = 0; //переменная для статуса светодиода
void setup()
{
  pinMode (GREEN1, OUTPUT); //устанавливаем пин3 как выход
  pinMode (BUTTON, INPUT); //устанавливаем пин2 как вход
}
boolean debounce(boolean last) //функция сглаживания, выдает значения HIGH или LOW
{
  boolean current = digitalRead(BUTTON); //считываем состояние кнопки
  if (last != current) //если не такое, как было
  {
    delay(10); //то ждём 10 мс
    current = digitalRead(BUTTON); //опять считываем состояние кнопки
    return current; //возвращаем состояние
  }
}
void setMode (int mode) //функция для выполнения моргания. void т.к. она ничего не вычисляет
{
  while (mode == 0) //если режим равен 0
  {
    digitalWrite (GREEN1, HIGH); //подаём питание
    delay (100); //держим 100 мс
    digitalWrite (GREEN1, LOW); //выключаем питание
    delay(100); //держим 100 мс
  }
  while (mode == 1); //если режим равен 1
  {
    digitalWrite (GREEN1, HIGH); //подаём питание
    delay (500); //держим 500 мс
    digitalWrite (GREEN1, LOW); //выключаем питание
    delay(500); //держим 500 мс
  }
  while (mode == 2); //если режим равен 1
  {
    digitalWrite (GREEN1, LOW); //выключаем питание
  }
}
void loop()
{
  currentButton = debounce(lastButton); //подаём функции debounce текущее состояние кнопки, по сути считываем состояние с учётом дребезга
  if (lastButton == LOW && currentButton == HIGH) //если кнопка нажата
  {
    lmode++;    //увеличиваем состояние счётчика режима на 1
  }
  lastButton = currentButton; //запоминаем последнее состояние кнопки
  if (lmode = 3) //если счётчик дошёл до значения 3, которое не предусмотрено в теле функции setMode
  lmode = 0; //то мы его обнуляем
  setMode (lmode); //и передаём значение функции setMode
}

По факту диод всегда моргает с частотой 10 Гц, и не реагирует на кнопку. Есть подозрение, что дело в реализации моргания с помощью delay(t) — выполнение программы прерывается, и обработки нажатия не происходит. Прав ли я?

Извините за глупый вопрос.

Программирование микроконтроллеров Курсы

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

Мигающий светодиод

Частота работы микроконтроллера

Большинство команд микроконтроллеров AVR выполняются в один такт генератора задающей частоты. В качестве которого широко используют встроенную в МК RC-цепочку или подключают к выводам XTAL1 и XTAL2 кварцевый резонатор.

Подключение кварцевого резонатора к микроконтроллеру

Например, если МК работает с частотой 1 Гц, то одна команда будет выполняться за одну секунду

Время выполнения команды микроконтроллера

По умолчанию у МК ATmega8 задействован собственный внутренний генератор частоты, а точнее RC-цепочка, которая работает на частоте 1000 000 Гц = 1 МГц. Поэтому время выполнения одной команды равно:

Частота работы микроконтроллера

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

#include <avr/io.h>

int main(void)

{

DDRD = 0b000000011;     

while (1)

    { 

      PORTD = 0b000000001; // Подаем питание на 1-й светодиод

      PORTD = 0b000000010; // Подаем питание на 2-й светодиод

    }

}

Но на самом деле второй LED загорится с разницей во времени 0,000001 секунды от первого. Наши глаза не могут заметить такой малой разницы во времени. Уже при частоте изображений более 24 Гц (t = 1/24 ≈ 0,042 с) наше зрение формирует из отдельных картинок непрерывный фильм. Поэтому в большинстве случаев мы не различаем 25-й кадр.

Для того, чтобы оба светодиода засветились с разницей во времени 0,5 секунды необходимо между соответствующими двумя командами (PORTD = 0b000000001; и PORTD = 0b000000010;) поместит еще 500 000 однотактных пустых команд, т. е. заставить МК полсекунды не выполнять никаких полезных действий. Или, как говорят, нужно “убить” 500 000 тактов. Если код пишется на Ассемблере, то программисты применяют различных циклы, которые “съедают” определенное число тактов и тем самым получают различные интервалы времени.

#include <avr/io.h>

int main(void)

{

DDRD = 0b000000011;

while (1)

    {

     PORTD = 0b000000001; // Подаем питание на 1-й светодиод

/*

Для получения задержки 0,5 секунды сюда нужно вставить

500 000 однотактных команд

*/

     PORTD = 0b000000010; // Подаем питание на 2-й

    }

}

Функция  _delay_ms() и мигающий светодиод

При написании кода на Си в Atmel Studio имеется очень удобная функция _delay_ms(). Для работы данной функции ее необходимо предварительно подключить директивой препроцессора #include <util/delay.h>.

В круглых скобках данной функции можно задавать время в миллисекундах, тогда перед скобками нужно записать ms, или в микросекундах – us:

Функция задержки микроконтроллера

При использовании данной функции для того, чтобы при компиляции Atmel Studio не выдавала никаких предупреждений, следует объявить частоту с помощью оператора #define. Так как по умолчанию для ATmega8 она равна 1 000 000 Гц, то это значение мы и объявим. Это делается следующей строкой:

#define F_CPU 1000000UL

В дальнейшем, когда мы будем подключать к МК кварцевый резонатор, без данной строки уже не обойтись. Структура ее останется прежней, только вместо 1 000 000 нужно будет записать частоту кварцевого резонатора.

Давайте улучшим нашу программу, так, чтобы сначала загорался один светодиод, затем через полсекунды он гаснул и еще через полсекунды загорался второй и снова через 0,5 с гаснул.

Программа для мигания светодиодом на микроконтроллере

#define

Давайте посмотрим на код, приведенной выше, еще раз. Если нам необходимо изменить значение задержки времени в функции _delay из 500, например на 300, то мы должны отыскать все строки с ее именем и выполнить соответствующую замену. Теперь представим, что таких строк сотня, а то и тысяча. Изменять значение каждого числа по отдельности крайне неудобно и долго. К тому же можно случайно пропустить строку. Поэтому необходимо применять другой, более удобный и практичный подход.

Таких подходов существует несколько. Самый простой – это объявить переменную и присвоить ей нужное значение. Далее эта переменная подставляется в соответствующие функции. Это хороший способ. В дальнейшем мы его рассмотрим детальнее. Сейчас же мы рассмотрим еще более лучший!

С помощью оператора #define мы присвоим числовому значению какое-либо имя. Это имя называется константа. В отличие от переменной, константа не может изменяться в программе. Выглядит это так:

#define MIG 300

.

.

.

_delay_ms(MIG);

Имя константы можно задавать практически любым, используя латинские символы и цифры. В данном случае имя MIG говорит о том, что мы применяем задержку для мигания светодиодами.

После строки с директивой препроцессора #define точка с запятой не ставится. Между именем константы и числовым значением ставится пробел.

Данная строка работает следующим образом. Перед началом компиляции выполняется замена числом 300 всех констант с именем MIG.

#define и регистры

Также оператор #define хорош тем, что с помощью него можно задавать имена регистрам. Например, если мы подключаем к порту D светодиоды, то вместо PORTD мы можем записать, например VD:

#define VD PORTD

.

.

.

VD = 0b00000001;

Давайте перепишем программу, применяю директиву #define:

#define F_CPU 1000000UL

#include <avr/io.h>

#include <util/delay.h>

#define MIG 300

#define VD PORTD

int main(void)

{

    DDRD = 0b000000011;

    while (1)

    {

             VD = 0b000000001; // Включаем 1-й светодиод

             _delay_ms(MIG);     // Ждем 0,5 секунды

             VD = 0b000000000; // Выключаем 1-й

             _delay_ms(MIG);     // Ждем 0,5 секунды

             VD = 0b000000010; // Включаем 2-й

             _delay_ms(MIG);     // Ждем 0,5 секунды

             VD = 0b000000000; // Выключаем 2-й

             _delay_ms(MIG);     // Ждем 0,5 секунды

    }

}

Таким способом можно сделать простейшую гирлянду. Однако применение функции _delay не всегда будет оправдано, поскольку во время задержки MK не выполняет никаких полезных действий. Более эффективный способ формирования временных интервалов является применение встроенных таймеров-счетчиков. О них будет подробно рассказано в последующих статьях.

Скачать  2 Atmel Studio

Скачать  2 Proteus

Как читать электрические схемы и создавать электронные устройства

If you find LEDs that blink to fast to suit your taste, you can slow them down with some simple circuit modifications. The actual procedure you will need to follow depends on the circuit design that controls the blink rate of your LEDs. Most circuits use resistors to control LED blink rate. Once you find where the resistors that control the blink rate are located, you can adjust the resistors’ value for a slower blink rate.

    Obtain the schematic of the LED flasher circuit you want to stop the LEDs from blinking too fast. Locate the resistors on the circuit schematic. Look for any notes on the schematic that may give you a clue as to what resistors control the blinking rate. Write down the values of the resistors that are on the schematic.

    Open up the LED flasher circuit so that you can see the components that are in the flasher. Locate the resistors on the printed circuit board. Read the values written on the resistors and match them to the resistors on the schematic.

    Attach a variable resistor to the right and left leads of one of the resistors on the circuit board. Turn on the flasher. Adjust the value of the variable resistor with a small screwdriver and observe whether or not the LED blinking rate slows down with the change in resistance. Remove the variable resistor and attach it to the left and right leads of another resistor. Continue in this fashion until you locate the resistor that controls the LED blinking rate.

    Things You’ll Need

    • Variable resistor
    • Small screwdriver
    • LED flasher circuit

    Tips

    • Some circuits use a voltage to control the blink rate. The blink rate of the LED can depend on the value of the voltage on the pin. Sometimes two pins control the blink rate. For example, if one pin is at 5 volts and the other is at 0 volts, you will get a slow blink rate. On the other hand, if the pin voltages are interchanged, you will get a fast blink rate. It is always a good idea to get the data sheet of the components in your flasher before you attempt to outguess the functionality of the components.

    Warnings

    • Not following proper safety procedures when working with electronics may result in serious injury or death. Always work under the supervision of a trained electronic technician or electronic engineer when you work with electronic equipment and devices. Take a electronics safety course before you begin working with electronic components and devices.

If you find LEDs that blink to fast to suit your taste, you can slow them down with some simple circuit modifications. The actual procedure you will need to follow depends on the circuit design that controls the blink rate of your LEDs. Most circuits use resistors to control LED blink rate. Once you find where the resistors that control the blink rate are located, you can adjust the resistors’ value for a slower blink rate.

    Obtain the schematic of the LED flasher circuit you want to stop the LEDs from blinking too fast. Locate the resistors on the circuit schematic. Look for any notes on the schematic that may give you a clue as to what resistors control the blinking rate. Write down the values of the resistors that are on the schematic.

    Open up the LED flasher circuit so that you can see the components that are in the flasher. Locate the resistors on the printed circuit board. Read the values written on the resistors and match them to the resistors on the schematic.

    Attach a variable resistor to the right and left leads of one of the resistors on the circuit board. Turn on the flasher. Adjust the value of the variable resistor with a small screwdriver and observe whether or not the LED blinking rate slows down with the change in resistance. Remove the variable resistor and attach it to the left and right leads of another resistor. Continue in this fashion until you locate the resistor that controls the LED blinking rate.

    Things You’ll Need

    • Variable resistor
    • Small screwdriver
    • LED flasher circuit

    Tips

    • Some circuits use a voltage to control the blink rate. The blink rate of the LED can depend on the value of the voltage on the pin. Sometimes two pins control the blink rate. For example, if one pin is at 5 volts and the other is at 0 volts, you will get a slow blink rate. On the other hand, if the pin voltages are interchanged, you will get a fast blink rate. It is always a good idea to get the data sheet of the components in your flasher before you attempt to outguess the functionality of the components.

    Warnings

    • Not following proper safety procedures when working with electronics may result in serious injury or death. Always work under the supervision of a trained electronic technician or electronic engineer when you work with electronic equipment and devices. Take a electronics safety course before you begin working with electronic components and devices.

Форум РадиоКот • Просмотр темы — Мигающие светодиоды

Сообщения без ответов | Активные темы

ПРЯМО СЕЙЧАС:

Автор Сообщение

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Сб мар 07, 2009 22:12:05 

Мучитель микросхем

Зарегистрирован: Ср авг 27, 2008 19:46:39
Сообщений: 436

Рейтинг сообщения: 0

nik-as писал(а):

со светофорами сравнение не
корректное, на светофорах нет светофильтров.

Повторюсь: вы не видели светодиодных светофоров. 8) Согласен, там нет светофильтров. Там установлены специальные рассеиватели или защитные стекла/решетки. Но и в автомобильном применении светофильтр нужен только лампам накаливания с БЕСЦВЕТНЫМИ КОЛБАМИ. В остальных же случаях также применяются специальный рассеиватель, а то и вовсе бесцветное защитное стекло.


_________________
Бойцовый Кот нигде не пропадет! © А. и Б. Стругацкие «Парень из преисподней»

Вернуться наверх
 

ПрофильПрофиль

 

Реклама

vsegdaprav

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Вс мар 08, 2009 10:45:22 

Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 1

Рейтинг сообщений: 3

Зарегистрирован: Пт янв 16, 2009 15:42:05
Сообщений: 163
Откуда: из тех же ворот что и весь народ

Рейтинг сообщения: 0

на некоторых грузовиках давно уже стоят ШТАТНЫЕ повторители поворотов на светодиодах с оранжевым рассеивателем


_________________
продам телевизор без рекламы

Русский человек славится своим умением находить выход из любых трудных ситуаций. Но ещё более он славится тем, что может найти туда вход.

Вернуться наверх
Реклама

Kasper_

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Вс мар 08, 2009 14:49:49 

Зарегистрирован: Пт мар 06, 2009 14:29:31
Сообщений: 6

Рейтинг сообщения: 0

Использовать старое реле однозначно нельзя так как для работы реле нужен ток порядка Ампер ( а все мы знаем что диоды потребляют мили Амперы)

Я видел можно переделать реле от жигуля нужно что-то перепаявать что-то допаявать, однозначно что качественнее сделать заново.

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

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

Возможность изменения частоты мигания нужно обязательно (малоли сотрудники ГАИ придеруться)

Вернуться наверх

RD3AUZ

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Вс мар 08, 2009 15:24:40 

Мучитель микросхем
Аватар пользователя

Зарегистрирован: Сб ноя 22, 2008 17:24:38
Сообщений: 410
Откуда: Москва

Рейтинг сообщения: 0

Kasper_ писал(а):

Возможность изменения частоты мигания нужно обязательно (малоли сотрудники ГАИ придеруться)

Для начала узнай, одобряет-ли ГИБДД эти замены. И отталкивайся от разрешенных ими параметров


_________________
Готовлюсь к последнему Экзамену

Вернуться наверх
Реклама

Выгодные LED-драйверы для решения любых задач

КОМПЭЛ представляет со склада и под заказ широкий выбор LED-драйверов производства MEAN WELL, MOSO, Snappy, Inventronics, EagleRise. Линейки LED-драйверов этих компаний, выполненные по технологии Tunable White и имеющие возможность непосредственного встраивания в систему умного дома (димминг по шине KNX), перекрывают практически полный спектр применений: от простых световых указателей и декоративной подсветки до диммируемых по различным протоколам светильников внутреннего и наружного освещения.

Подобрать LED-драйвер>>

Kasper_

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Вс мар 08, 2009 16:06:18 

Зарегистрирован: Пт мар 06, 2009 14:29:31
Сообщений: 6

Рейтинг сообщения: 0

На это ни кто не смотрит. Но на всякий пожарный случай хочется иметь возможность изменять частоту.

Вернуться наверх
Реклама

Реклама

LIMF – источники питания High-End от MORNSUN со стандартным функционалом на DIN-рейку

На склад Компэл поступили ИП MORNSUN (крепление на DIN-рейку) с выходной мощностью 240 и 480 Вт. Данные источники питания обладают 150% перегрузочной способностью, активной схемой коррекции коэффициента мощности (ККМ; PFC), наличием сухого контакта реле для контроля работоспособности (DC OK) и возможностью подстройки выходного напряжения. Источники питания выполнены в металлическом корпусе, ПП с компонентами покрыта лаком с двух сторон, что делает ее устойчивой к соляному туману и пыли. Изделия соответствуют требованиям ANSI/ISA 71.04-2013 G3 на устойчивость к коррозии, а также нормам ATEX для взрывоопасных зон.

Подробнее>>

ludmila 1

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Вс мар 08, 2009 21:35:52 

Карма: 1

Рейтинг сообщений: 7

Зарегистрирован: Ср дек 24, 2008 21:15:36
Сообщений: 342

Рейтинг сообщения: 0

Не надо путать суперяркие светодиоды (1,8В 20мА) и сверхяркие светодиоды (напряжение не менее 3,4В и ток 0,1-0,7А). В поворотниках и светофорах применяются как раз сверхяркие светодиоды, их нельзя включать последовательно с мигающим светодиодом.

Вернуться наверх

myurrey

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Вс мар 08, 2009 21:42:18 

Друг Кота
Аватар пользователя

Карма: 9

Рейтинг сообщений: 79

Зарегистрирован: Вт дек 11, 2007 18:46:27
Сообщений: 3240
Откуда: Троицк. Челябинская обл.

Рейтинг сообщения: 0

ludmila 1 писал(а):

Не надо путать суперяркие светодиоды (1,8В 20мА) и сверхяркие светодиоды (напряжение не менее 3,4В и ток 0,1-0,7А). В поворотниках и светофорах применяются как раз сверхяркие светодиоды, их нельзя включать последовательно с мигающим светодиодом.

Хватит флудить! :evil:

Суперяркие светодиоды:

Мощность: 1, 3, 5 Вт — серии Luxeon, Luxeon III, Luxeon V, Luxeon V Portable, Luxeon K2;

Напряжение питания: около 3.5 В

Ток потребления: 350-1500 мА;

Световой поток: до 190 лм (в зависимости от модели и цвета свечения);

Технические характеристики: …

Остальное потрудитесь найти сами.

Так-же есть ультраяркие, сверхмощные, и тд и тп…

А даташиты надо бы читать. А не по этикетке смотреть, какого она цвета.

Последний раз редактировалось myurrey Вс мар 08, 2009 21:47:47, всего редактировалось 1 раз.

Вернуться наверх

SeregaT

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Вс мар 08, 2009 21:46:23 

Генеральный секретарь МЯУ
Аватар пользователя

Карма: 69

Рейтинг сообщений: 22

Зарегистрирован: Пн сен 03, 2007 18:24:27
Сообщений: 18194
Откуда: Россия. Омск.

Рейтинг сообщения: 0

Да последовательно с мигающим светодиодом — это вообще лажа какая-то. Что-то я не доверяю таким светодиодам, а ну как сдохнет и поворот не покажет где надо… Делать надо мультивибратор для мигания. Светодиоды соединять через резисторы последовательно по 1 — 4 штуки (я бы по 1 шт делал, так надёжнее).

myurrey писал(а):

Суперяркие светодиоды:
Мощность: 1, 3, 5 Вт — серии Luxeon, Luxeon III, Luxeon V, Luxeon V Portable, Luxeon K2;
Напряжение питания: около 3.5 В
Ток потребления: 350-1500 мА;
Световой поток: до 190 лм (в зависимости от модели и цвета свечения)

Да это уже для фары скорее подойдёт, чем для поворотников :)))

В поворотниках обычные ставят. Максимум 0,5 Вт.

Вернуться наверх

Thomas

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Вс мар 08, 2009 21:53:11 

Зарегистрирован: Ср авг 27, 2008 19:46:39
Сообщений: 436

Рейтинг сообщения: 0

ludmila 1 писал(а):

Не надо путать суперяркие светодиоды (1,8В 20мА) и сверхяркие светодиоды (напряжение не менее 3,4В и ток 0,1-0,7А). В поворотниках и светофорах применяются как раз сверхяркие светодиоды, их нельзя включать последовательно с мигающим светодиодом.

ludmila 1! Вы уже замучили всех категоричностью своих суждений, что свидельствует о вашей крайней ограниченности. Во-первых, четкого разделения на яркие, сверхъяркие, суперяркие и т.д. светодиоды нет. Поэтому, к этим категориям могут относится светодиоды с весьма разной яркостью свечения и рабочими токами. Но де-факто сейчас с рабочим током до 20 мА (т.е. обычным) называют яркими и т.д. (при яркости порядка мкд и больше), а вот с большим рабочим током обычно называют мощными и сверхмощными.

Насчет же конкретного применения я уже про падения напряжения и токи сказал: надо смотреть конкретные типы светодиодов.


_________________
Бойцовый Кот нигде не пропадет! © А. и Б. Стругацкие «Парень из преисподней»

Вернуться наверх

WatchCat

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Пн май 04, 2009 13:42:46 

Держит паяльник хвостом
Аватар пользователя

Карма: 10

Рейтинг сообщений: 58

Зарегистрирован: Ср сен 03, 2008 21:42:17
Сообщений: 963
Откуда: Ленинградская область,пос.Красный Остров

Рейтинг сообщения: 0

Вот самая простая схема «реле поворотов» для скутера или советского мотоцикла. Работает как с лампочками, так и с светодиодами.

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

А вот штатное реле советского мотоцикла с ними работать не будет(впрочем — оно обычно вообще не работает толком).

Самое распространенное «жигулевское» реле тоже или не работает вообще или мигает слишком часто, зависит от варианта внутренностей.

Собираем такую схему и катаемся.

Проблема только одна — найти IRF9540 не всегда просто.

Вложения:
Комментарий к файлу: Реле поворотов на мигающем светодиоде.



flash_rele.jpg [44.12 KiB]

Скачиваний: 1305

Вернуться наверх

Vladisman

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Пн май 11, 2009 18:07:56 

Держит паяльник хвостом
Аватар пользователя

Карма: 2

Рейтинг сообщений: 13

Зарегистрирован: Вт дек 11, 2007 18:50:09
Сообщений: 954
Откуда: Саратов

Рейтинг сообщения: 0

Вернуться наверх

WatchCat

Не в сети

Заголовок сообщения:

СообщениеДобавлено: Вт сен 22, 2009 06:06:27 

Держит паяльник хвостом
Аватар пользователя

Карма: 10

Рейтинг сообщений: 58

Зарегистрирован: Ср сен 03, 2008 21:42:17
Сообщений: 963
Откуда: Ленинградская область,пос.Красный Остров

Рейтинг сообщения: 0

Мы с приятелем сделали на его Яву мигалку на основе мосфета и мигающего светодиода. Мигает отлично. Пока мотор не заведешь. Тогда тоже мигает, но сважность импульсов прыгает и получается не так красиво. Помехозащитны мероприятия помогли, но не полностью, просто меньше «дергаться» стало.

Замена системы зажигания на электронное (от Оки) вообще не влияет.

Подбирали разные типы мигающих светодиодов — скупили на рынке каждой твари по паре:) Оказалось что чувствительность к помехам заметно разная, выбрали наиболее устойчивый.

Но еще раз повторю, что мигалка, где в качестве задающего частоту элемента используется мигающий светодиод — на мотоцикле работает посредственно.

Теперь о светодиодных сборках в поворотниках(и в стоп-сигнале). Проблема в том, что у светодиодов слишком направленный свет. И если поставлена такая сборка, у которой все светодиоды светят «вперед»(ну или «назад») — то _сбоку_ в солнечный день ее видно _плохо_. То же относится и к стопсигналу. Поэтому выбирайте сборки, которые светят в разные стороны за счет разной ориентации диодов в них. И оцените видимость, посмотрев на свой мотоцикл в солнечный день метров с пятидесяти(а лучше прямо на дороге, на время эксперимента поменявшись байками с приятелем).

Вернуться наверх

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

  1. 12.10.2009 12:31


    #1

    Радиолюбители и радиопрофессионалы, подскажите схему

    Нужна примитивная схема, которая обеспечит мигание простого светодиода небольшой яркости (типа АЛ-102, что ли) с частотой 1-2 герца. Вернее, двух светодиодов одновременно (их, говорят, тупо параллельно нельзя включать). Питание от 3 вольтов. Вроде как раньше были схемки типа симметричных мультивибраторов на двух траммзисторах, двух кондёрах и двух сопротивлениях. А может сейчас всё на одной мелкосхеме делается.

    с. Мариярайка Порноалтайской республики страны запуганных идиотов


  2. 12.10.2009 12:38


    #2


  3. 12.10.2009 12:41


    #3

    Существуют мигающие светодиоды — спроси в магазине радиотоваров.
    Их сразу подключаешь к 12В и они мигают, но частоту мигания не изменить.


  4. 12.10.2009 12:56


    #4

    Вот простая схема, два светодиода мигают по-очереди.
    http://right-hands.ru/publ/25-1-0-75
    Транзисторы можно взять не такие мощные.

    Toyota Corolla Fielder NZE121, 1NZ-FE, 2002 г. XG-edition.


  5. 12.10.2009 12:59


    #5

    Dfcbkbq, а как её подключать? В инете схемку видел, но для человека, радиоразвитие которого остановилось при Брежневе, она осталась китайской грамотой :)

    macar2005, мне нужен жёлтый или оранжевый цвет, а в наших краях такие не водятся. В москве водятся, но ценники даже там конские. Да и мне лучше 3 вольта, чем 12.

    с. Мариярайка Порноалтайской республики страны запуганных идиотов


  6. 12.10.2009 13:01


    #6

    Вот еще две хорошие ссылки с другими аналогичными схемами:
    http://lessonradio.narod.ru/Diagram.htm
    http://www.casemods.ru/section9/item561/
    Авообще, в яндексе набираем «простой мультивибратор + светодиод» и находим огромное количество схем.
    Кстати, светодиоды можно параллельно включать.

    Toyota Corolla Fielder NZE121, 1NZ-FE, 2002 г. XG-edition.


  7. 12.10.2009 13:04


    #7

    Сообщение от Дмитрий из Барнаула
    Посмотреть сообщение

    Dfcbkbq, а как её подключать? В инете схемку видел, но для человека, радиоразвитие которого остановилось при Брежневе, она осталась китайской грамотой :)

    Тогда рекомендую позвонить в магазин Эскор и там спросить готовую схему или набор-конструктор «Мастеркит».

    Toyota Corolla Fielder NZE121, 1NZ-FE, 2002 г. XG-edition.


  8. 12.10.2009 13:08


    #8

    Мне вот для этого: https://forums.drom.ru/attachment.php…7&d=1255225345
    а красный цвет нынешним техрегламентом запрещён :)

    Там два должны работать одновременно, но просто параллельно их, говорят, нельзя цеплять, скорее всего один тусклым будет, потому как второй всё заберёт. Я не пробовал.

    А в Эскор так и так идти.

    с. Мариярайка Порноалтайской республики страны запуганных идиотов


  9. 12.10.2009 14:11


    #9

    Чтобы светодиоды горели одинаково надо их включить последовательно. Напряжения 3 Вольта должно хватить.

    Toyota Corolla Fielder NZE121, 1NZ-FE, 2002 г. XG-edition.


  10. 12.10.2009 14:27


    #10

    купи белый мигающий светкодиот и жолтый резиновый колпачек (в автомагазинах для подсветки приборов продаются)

    — Какая мерзость! Что это!?
    — Это люди…


  11. 12.10.2009 14:27


    #11

    Вот два готовых продукта на выбор, которые можно купить в Эскоре:
    http://www.masterkit.ru/main/bysearch.php?search=nk051
    http://www.masterkit.ru/main/bysearch.php?search=nk024
    Работает от 6 вольт, но от 3 тое должно.

    Toyota Corolla Fielder NZE121, 1NZ-FE, 2002 г. XG-edition.


  12. 12.10.2009 14:39


    #12

    el’Dmitriy, с белыми мигающими в Барнауле точно так же, как и с жёлтыми :)

    HDH, спасибо, зайду, оценю.

    с. Мариярайка Порноалтайской республики страны запуганных идиотов


  13. 12.10.2009 15:40


    #13

    Сообщение от Дмитрий из Барнаула
    Посмотреть сообщение

    Dfcbkbq, а как её подключать? В инете схемку видел, но для человека, радиоразвитие которого остановилось при Брежневе, она осталась китайской грамотой :)

    macar2005, мне нужен жёлтый или оранжевый цвет, а в наших краях такие не водятся. В москве водятся, но ценники даже там конские. Да и мне лучше 3 вольта, чем 12.

    В автомобильном магазине , посередине стоит отдел с светодиодами, всякими, там тебе проблему решат на раз=два.))))))

    Наше дело правое, победа будет за нами! (С)


  14. 12.10.2009 16:28


    #14

    Сообщение от Дмитрий из Барнаула
    Посмотреть сообщение

    Нужна примитивная схема, которая обеспечит мигание простого светодиода небольшой яркости (типа АЛ-102, что ли) с частотой 1-2 герца. Вернее, двух светодиодов одновременно (их, говорят, тупо параллельно нельзя включать). Питание от 3 вольтов. Вроде как раньше были схемки типа симметричных мультивибраторов на двух траммзисторах, двух кондёрах и двух сопротивлениях. А может сейчас всё на одной мелкосхеме делается.

    ты хоть расскажи, для чего?
    ЗЫ ачепятка нештяг


  15. 12.10.2009 16:34


    #15

    [QUOTE= для человека, радиоразвитие которого остановилось при Брежневе, она осталась китайской грамотой :)
    [/QUOTE]

    В таком случае нужно-либо искать готовое изделие,благо сейчас не брежневские времена,найти можно всё.Либо найти умельца(или профессионала),который это может спаять за 5 минут на коленке.Я своему сыну в конце 80-х паял на К561ЛА7 сирену с моргалкой на пожарную машину.Монтаж делается на ножках микросхемы. Частота мигания подбирается изменением резистора(который 100-500Ком) или подбором конденсатора-чем больше ёмкость-тем меньше частота.Прошу не критиковать за художественные способности-рисовал в пейнте,второпях,по памяти.Если светодиоды не очень мощные,то можно обойтись без транзистора,но тогда микросхема будет работать на пределе-надолго не хватит(правда ребёнку игрушка быстрее надоест)


  16. 12.10.2009 16:54


    #16

    Если напряжение питания от 3-х Вольт(для561 серии гарантируется работоспособность от 3 до 15 Вольт),тогда сопротивление резистора в коллекторе транзистора (в нагрузке светодиодов) надо уменьшить-им можно подобрать яркость свечения и светодиоды,скорее всего надо будет паять параллельно


  17. 12.10.2009 18:23


    #17

    PolStakk, если бы в автомобильном мне могли помочь, стал бы я ветку делать? Мне в том отделе больше всего продавашки нравятся :)

    anbo, вот здесь #8 для чего. Я же ПДД веду, ну сколько можно указатели поворота углём на известке изображать?

    HDH, блин, в той машинке, что в #8, я же сам параллельно МСД ставил, и даже не обращал внимание на такое конструктивное решение, и всё работало, пока я не прочитал, что параллельно их ставить нельзя :)

    Пойду считать себестоимость вариантов, один мигающий жёлтый стоит от 22 рэ, но в москве…

    с. Мариярайка Порноалтайской республики страны запуганных идиотов


  18. 12.10.2009 18:23


    #18

    PolStakk, если бы в автомобильном мне могли помочь, стал бы я ветку делать? Мне в том отделе больше всего продавашки нравятся :)

    anbo, вот здесь #8 для чего. Я же ПДД веду, ну сколько можно указатели поворота углём на известке изображать?

    HDH, блин, в той машинке, что в #8, я же сам параллельно МСД ставил, и даже не обращал внимание на такое конструктивное решение, и всё работало, пока я не прочитал, что параллельно их ставить нельзя :)

    Пойду считать себестоимость вариантов, один мигающий жёлтый стоит от 22 рэ, но в москве…

    с. Мариярайка Порноалтайской республики страны запуганных идиотов


  19. 12.10.2009 18:37


    #19

    Сообщение от PolStakk
    Посмотреть сообщение

    В автомобильном магазине , посередине стоит отдел с светодиодами, всякими, там тебе проблему решат на раз=два.))))))

    это и есть отдел от ЭСКОРа


  20. 12.10.2009 19:32


    #20

    Можно светодиоды параллельно включать, если полярность одинаково подключить. Это 100%

    Toyota Corolla Fielder NZE121, 1NZ-FE, 2002 г. XG-edition.


В этом уроке

  • Структура кода
  • Блоки setup(), loop(), комментарии, функции вывода
  • Ваша первая программа

Видео версия урока

Структура кода программы

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

void setup() {
  // Код, который выполнится только один раз
}

void loop() {
  // Основной код, который будет выполняться бесконечно
}

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

void loop()
Команды, которые будут бесконечно выполняться, пока на плате есть питание, хранятся в блоке void loop(). Микроконтроллер будет выполнять код, дойдёт до последней строки и снова начнёт с первой («loop» с англ.яз — петля, цикл).

Управление светодиодом на плате контроллера

В первом задании Вы будете включать и выключать светодиод, расположенный на плате Arduino Nano, который подключен параллельно 13 выводу. 

Для этого введите нижеприведенный скетч в рабочее поле программы и нажмите кнопку «Загрузить». После этого скетч проверится на ошибки и загрузится в плату. Светодиод начнёт мигать.

/* Зажигаем светодиод на одну секунду, затем
выключаем его на одну  секунду */
void setup () {                
    pinMode (13, OUTPUT);      // Настраиваем 13 вывод на работу в режиме выхода
}

void loop () {
    digitalWrite (13, HIGH);   // Установим на выходе логическую 1
    delay (1000);              // Задержка 1000 миллисекунд (1 сек)
    digitalWrite (13, LOW);    // Установим на выходе логический 0
    delay (1000);              // Задержка 1000 миллисекунд (1 сек)
}

Мы настоятельно рекомендуем не копировать приведённый код, а вводить его вручную. Так Вы гораздо быстрее поймёте логику его работы и запомните используемые функции.

  1. Комментарии. В рабочем поле всегда можно оставлять комментарии с пояснениями к блокам кода. Эта часть кода при загрузке в плату не учитывается. Для того, чтобы сделать  комментарий, необходимо перед ним указать символы:
    //
    — для комментариев в 1 строку;
    /*… */
    — для комментариев в несколько строк.
  2. Блок setup()
    Функция pinMode() (4 строка) — определяет режим работы указанного вывода (работать на вход или на выход). Функция находится в этом блоке, потому что её достаточно выполнить один раз. Назначаем 13 вывод работать в режиме ВЫХОД (OUTPUT), потому что в данном случае контроллер будет управлять светодиодом. Если бы мы подключили датчик, контроллер бы принимал от него сигнал, и вывод мы бы установили как ВХОД (INPUT). 
  3. ; — каждую функцию необходимо завершать символом «точка с запятой».

  4. Блок loop()
    Функция digitalWrite() (8 строка) — определяет, какой сигнал подается на указанный вывод. Установим значение сигнала как «1» (HIGH). Светодиод загорится.
    Функция delay() (9 строка) — останавливает выполнение программы на заданное количество миллисекунд (в 1 секунде — 1000 миллисекунд). Светодиод включен, и в течение секунды никаких действий больше не происходит.
    Функция digitalWrite() (10 строка) — та же функция, которую мы использовали ранее, но теперь установим значение сигнала на 13 выводе как «0» (LOW). Светодиод погаснет.
    Функция delay() (11 строка) — так же, как и в коде выше, останавливает дальнейшее выполнение программы на 1 секунду. Светодиод в это время выключен.

Функцию delay() нежелательно использовать в коде, так как она останавливает выполнение программы, и контроллер больше ничего не способен делать. Таким образом, ресурсы контроллера используются нерационально. В дальнейшем мы научимся обходиться без этой функции и реализуем отсчёт времени по-другому. А пока поздравляем — Вы только что написали свою первую программу!

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

Дополнительное задание

1) Измените частоту мигания светодиода. Сделайте её больше или меньше.
2) Измените программу так, чтобы светодиод сначала моргнул три раза медленно,
а затем — три раза быстро.

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Как изменить частоту мерцания экрана
  • Как изменить частоту машинки на радиоуправлении
  • Как изменить частоту маршрутизатора
  • Как изменить частоту магнетрона микроволновки
  • Как изменить частоту колонок

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии