Перейти к содержанию

Поиск сообщества

Показаны результаты для тегов 'Ардуино'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
  • Радиоэлектроника для профессионалов
    • Автомобильная электроника
    • Питание
    • Ремонт
    • Системы охраны и наблюдения. Личная безопасность
    • Роботы и модели на ДУ-управлении
    • Световые эффекты и LED
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Металлоискатели
    • Автоматика
    • Электрика
    • Промышленная электроника
    • Измерительная техника
    • Мастерская радиолюбителя
    • КВ и УКВ радиосвязь
    • Радиопередатчики
    • Сотовая связь
    • Спутниковое ТВ
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Схемотехника для профессионалов
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
    • МК для начинающих
    • Arduino, ESP32, ESP8266, Raspberry Pi
    • AVR
    • STM32
    • PIC
    • ПЛИС
    • Другие микроконтроллеры и семейства
    • Алгоритмы
    • Программаторы и отладочные модули
    • Периферия и внешние устройства
    • Разное
  • Товары и услуги
    • Коммерческие предложения
    • Продам-Отдам, Услуги
    • Куплю
    • Уголок потребителя
    • Вакансии и разовая работа
    • Наши обзоры и тесты
  • Разное
    • Курилка
    • Сайт Паяльник и форум
    • FAQ (Архив)
    • Технический английский (English)
    • Личные блоги
    • Наши проекты для Android и Web
    • Корзина
    • Конкурсы сайта с призами
    • Вопросы с VK
  • Переделки ATX->ЛБП
  • Переделки разные темы
  • Киловольты юмора Юмор в youtube

Блоги

  • Твори, выдумывай, пробуй.
  • fant's блог
  • Ток покоя
  • Где купить велпатасвир, epclusa, velpanat, velasof, софосбувир в России по лучшей цене.
  • Китайские бренды видеокамер
  • Создание Маленькой Мастерской
  • Блог администрации
  • STEN50's блог
  • Изучение, наладка, исследование
  • MiSol62's блог
  • короткие записки по ходу дела
  • Программирование AVR и PIC блог
  • Стабилизированный выпрямитель тока ТЕС 12-3-НТ
  • Блог getshket
  • ТНПА
  • welder's блог
  • blog cheloveka loshadi
  • OPeX3's блог
  • Подводная робототехника
  • Сабвуфер и акустика.
  • Радиоуправляемая машина
  • Консультация психолога сексолога онлайн, психолог онлайн
  • Nokian блог
  • Оповещения Dermabellix Scam !! Не покупайте это !!!
  • Cheerful Boss' блог
  • Cheerful Boss' блог
  • VLAD1996B's блог
  • "Коллективное увеличение продаж"
  • Dudok's блог
  • "Коллективное увеличение продаж"
  • Goluboglazyi's блог
  • Прибор определяющий электролитический конденсатор на работоспособность.
  • Mosfet@'s блог
  • mazzi's блог
  • Лучшие компьютерные игры 2017
  • Marchenkokerya's блог
  • Заметки начинаущего аудиофила
  • Почти бесполезные проги
  • Светлый блог.
  • дядюшка Филин's блог
  • Дневники нуба
  • satyrn's блог
  • Люк. В погреб.
  • Фильм Дом Солнца
  • Светодиодная лента B-LED 2835-120 W белая негерметичная
  • Само-Реплицируещиеся Производственные Системы
  • Блог от Eknous
  • РВС's блог
  • Den_R's blog
  • РВС's блог
  • Чтото крутое и про криворукость
  • ekadom's блог
  • Проектирование любых чертежей
  • Lisovic's блог
  • Блог уже не юного радиогубителя
  • денди
  • eHouse
  • zaregan's блог
  • Схемотехника УНЧ с низковольтным питанием на примере приёмников фирмы Grundig
  • То, что в руки попало.
  • Блок питания водородного генератора и все что с ним связано
  • slava_va@mail.ru's блог
  • Блог alex123al97
  • slava_va@mail.ru's блог
  • параленое соединение КРЕНок или как сделать стабилизатор напряжения 24-12в
  • Свободная генерация Андрея Мельниченко
  • реобас
  • Модернизации системы впрыска на 555
  • помощь
  • Копии схем и печатных плат устройств попавшие ко мне
  • MBM75's блог
  • Буду
  • lagutai's блог
  • Мои проекты.
  • lagutai's блог
  • Трудовик
  • vOVK@'s блог
  • токарь-радиолюбитель
  • azlk3000's блог
  • Коллизия сингулярности
  • SmallAlex's блог
  • Вопрос по Цифровому усилителю мощности звука 2x12 Вт YDA138-E
  • bebulo's блог
  • Простейший макет станка термо-вакуумной формовки
  • Блог им. pryanic
  • peratronika
  • Zer's блог
  • MEDBEDb's
  • Гнездо кукушки
  • hiMiческий блог
  • luna_kamen's блог
  • Изучаем USI на основе сверхэкономичного прототипа
  • Алекс-Юстасу
  • SUBWOOFER.RU
  • kot sansher's блог
  • Поделки стареющего пионера
  • доброжелатель2's блог
  • Grig96. Полезные заметки.
  • Attiny 0-ой и 1-ой серии (Attiny817, 1614 и прочие)
  • pavlo's блог
  • MSP430FR
  • viper2's блог
  • Моя Электро Чинильня
  • Selyk's блог
  • VoltServis.ru
  • kpush's блог
  • OM3 на новых платах.
  • конни's блог
  • Электронный экстазёр "MASHKA".
  • ptimai's блог
  • noc functionalities
  • Sun kapitane's blog
  • ODEON AV-500
  • Sun kapitane's blog
  • Логика на транзисторах,диодах, счетние тригери на транзисторах
  • AleksandrBulchuck's блог
  • Качественные окна от производителя
  • KRALEX's блог
  • Javaman's projects
  • SeVeR36's блог
  • 3232
  • Пять копеек.
  • Az@t's блог
  • Индукционный нагрев
  • Схемы разных устройств
  • Кардшаринг SAT ТВ блог
  • PENTAGRID SAYS
  • Ещо раз о "Кощее 5И"
  • Игровые автоматы на официальном сайте
  • коллекционер
  • дямон's блог
  • Ламповый усилитель и акустика для озвучки семейных мероприятий
  • дямон's блог
  • tiosmutoutrup1971
  • Светомузыкальная установка для новачков
  • Лучшие игры для ПК скачать бесплатно
  • sqait's блог
  • Блокнотик
  • Gubernator's блог
  • Записки электрика
  • Полстакана
  • Vrednyuka
  • Интегральные микросхемы
  • grigorik's блог
  • Интегральные микросхемы
  • VMWare удобство и безопастность
  • Профсоюз обычных пользователей
  • rtfcnf's блог
  • Гидроэнергетика в России: отечественные гидроэлектростанции, типы и характеристики
  • VMWare удобство и безопастность
  • Лайфхаки от Кати
  • Kinh chong anh sang xanh gia re
  • ukabumaga's блог
  • АО "Диполь Технологии"
  • artos5's блог
  • блог
  • Kraftwerk's блог
  • 1
  • Kraftwerk's блог
  • Как выбрать точечный светильник?
  • мастерская ky3ne4ik'а
  • Работа с микроконтроллером Atmega8
  • Aronsky
  • Игорь Камский
  • Диммеры
  • 5В = 1,5+3
  • vitiv' блог
  • Ремонт цифровой панели прибора тойоты марк 100. Замена транзистора 36 ( SOT- 23 )PNP
  • Все СРО России
  • 300writers
  • Металлоискатель Tracker FM-1D3
  • Былое
  • Создание монстра "Blaster 8920"
  • 2Smart Cloud Blog
  • EmmGold's блог
  • 2Smart Cloud Blog
  • ivan15961596's блог
  • Кумир у-001
  • ivan15961596's блог
  • My blog
  • Интернет радио в машину
  • SamON
  • Помогите люди добрые
  • AI
  • Помогите подключить маяк 231 стерео.
  • Гаусс-пушки
  • Название
  • 7400's блог
  • Как я собирал свой первый импульсный источник питания
  • Віталік Приходько_130349's блог
  • Lithium ECAD - российская САПР печатных плат
  • Евгений Малюта's блог
  • ПИшу свои мысли
  • werekpro
  • Venera Electronica
  • afurgon's блог
  • Выбросьте это в парашу!
  • odaplus' блог
  • Zvik's блог
  • Smart overload protection power amplifier «Zita (Z) ThermalTrak™»
  • радиоэлектоника
  • BoBka777's блог
  • МиУЗР - Модернизация и Усовершенствование Звуковой Радиотехники .
  • aleksey9900's блог
  • Лабораторная блок питания
  • Нашел статью о пайке проводов к светодиодов
  • Китайский городовой
  • Костик0's блог
  • УФ лампа для маникюра SK-818
  • 8 Contrasts Between Web Servers and Application Servers
  • Конденсатор
  • Новости, обзоры и другая полезная информация от ИМ "Радиодар"
  • Цветомузыка
  • OPeX3's блог
  • Sem2012's блог
  • это не хлам – это часть моей жизни
  • Контроллер на базе ПК (OS Win LTSC)
  • OdiS' блог
  • Хитрости строителя
  • aleksfil's блог
  • Color Preamp - предусилитель на лампах 12AU7
  • Проблема с зарядкой литиевого аккумулятора для шуруповерта 21 вольт
  • EmmGold's блог; AVR
  • Микроэлектроника
  • З
  • CH32V
  • Блог Плотникова Ильи
  • Бесплатные радиодетали с Алиэкспресс
  • Повышение качества и снижение временных затрат при испытаниях электронных компонентов с помощью отечественного испытательного оборудования
  • Источники питания MEAN WELL
  • Жизнь и рыбалка
  • yureika's блог
  • Глушитель спутникогого интернета
  • Всякая всячина
  • Для начинающих
  • Ignite your senses with the grace and allure of female escorts near Laguna Niguel
  • Fumitox's блог
  • Наш-RXT6 топ-10 на январь 2023: Лучшие сайты онлайн казино в России
  • Лицензионные казино онлайн в 2024 году на реальные деньги
  • Самоделки блог
  • Домашняя автоматика
  • Интересное и полезное
  • Ремонт Амфитон 35у-101с
  • ульян's блог
  • Свет в грузовой газели
  • Блок питания 0-12В для начинающих
  • Dimko's блог
  • Иван Самец's блог
  • SolomonVR's блог
  • gendzz's блог
  • fleh138's блог
  • Электроника forever!
  • aleksejhozhenets' блог
  • aleksejhozhenets' блог
  • diserver блог
  • aleksey290476 блог
  • ВАРГ's блог
  • Люстра Чижевского
  • wanes101's блог
  • voldemar2009's блог
  • Jana's блог
  • Jana's блог
  • Рена Искужин's блог
  • abduraxman7's блог
  • Kuzumba's блог
  • Самопальник
  • заработок через интернет на запчасти!!!
  • electric.kiev's блог
  • lolo's блог
  • leravalera's блог
  • ideomatic's блог
  • приглашаем на работу инженера-радиоэлектронщика
  • FREEMAN_77's блог
  • Блог автоэлектрика
  • Блог начинающего электронщика
  • Dersu's блог
  • Электроэнергия и её экономия!
  • Электроэнергия и её экономия!
  • Семён Ковалёв's блог
  • piligrim-666's блог
  • помогите с партотивной калонкой
  • помогите с партотивной калонкой
  • Музыка в стене.
  • m-a-r-i-k-a's блог
  • cosmos44's блог
  • oyama14's блог
  • блог Виталика!
  • ciornii's блог
  • Великий и Ужастный блог
  • Denis__Ricov's блог
  • Universal12's блог
  • Sprut's блог
  • Alexeyslav's блог
  • cosmosemo's блог
  • Заметки радиолюбителя
  • Falconist. Мемуары
  • Блог MillyVolt
  • усилитель импульсов
  • Panasonic sa-ak 18
  • Простое радиоуправление из того, что было.
  • 35house
  • Блог Радиочайника
  • Блохи iiiytnik'a
  • Хороший сервис- Бяка
  • Аудиолаборатория "Философия Звука"
  • ОколоCADовое
  • Блог KVLADS
  • Короп блог
  • Автоматизация котла Protherm MTV
  • Бложиг Касянича
  • Обо всём
  • Эксперимент
  • No electronics
  • ПРИРОДА СВЕТА и ЕГО ВОЗМОЖНОСТИ
  • Генератор на xr2206
  • HTPOWLASER
  • Когда-то были очень популярны у радиолюбителей
  • AVR - микроконтроллеры
  • Микроконтроллер
  • Самодельный автосимулятор
  • Интернет-магазин керамической плитки «Боярская Плитка»
  • Разработка электронных метрических мишеней IPSC для мягкой пневматики (страйкбол)
  • ,

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


Skype


ICQ


Интересы


Город


Сфера радиоэлектроники


Оборудование

  1. Собираю контроллер на ардуино (pro mini). Хотелось бы в дополнение к основным функциям добавить функцию измерения собственного напряжения питания (подающегося на вывод встроенного в ардуино стабилизатора напряжения питания). То есть если питание автономное, можно будет прослеживать состояние и динамику разряда батареи и, соответственно, как-то прогнозировать сколько еще можно "протянуть". Некоторые контроллеры имеют специальные "засекреченные" регистры -- может, у ардуино тоже есть такой? Самым простым решением кажется подключить питающее напряжение через какой-нибудь там резистор на один из аналоговых выводов и просто его мерять. Что смущает -- на самом деле эти выводы меряют не абсолютное напряжение, а напряжение в диапазоне от 0 (минимум) до "напряжения питания" (максимум) выдавая результат от 0 до 255. И здесь вопрос - что считается "напряжением питания". Если это уже стабилизированное напряжение 5В (что скорее всего и должно быть), то все нормально, только надо поставить делитель, так как измеряемое нерегулированное напряжение будет больше максимума (стабилизированного напряжения). Ну а если "напряжение питания" это нерегулированное напряжение, то результат всегда будет максимум, то есть 255. Или, может, такого типа вопрос решается совсем другим способом, например, через специализированный элемент (есть свободный аналоговый вывод, также используется SPI)
  2. Прошу помощи в написании программы Мои знания программирования на ардуино основаны на примерах и школьного курса Так вот есть программа int LedPin = 8; // Подключаем светодиод к порту 13 int ButPin = 2; // Подключаем кнопку к выходу 10 int flag = 0; // флаг состояния int LedPinTime = 100; void setup() { pinMode(LedPin, OUTPUT); // Инициализируем порт "ledPin" как выходной } void loop() { if(digitalRead(ButPin) == HIGH && flag == 0) { digitalWrite(LedPin, !digitalRead(LedPin)); flag = 1; } if(digitalRead(ButPin) == LOW && flag == 1) { flag = 0; } } собрал из кусков, работает но не то что мне нужно Мне нужно чтобы при нажатие одной кнопки(без фиксации) светодиод загорался на три секунды ( и не важно держишь ты кнопку или кратковременно нажал, он через три секунды потухнет) помогите кто может
  3. Здравствуйте! Разрабатываю проект на Ардуино и с датчиком озона MQ131 и столкнулся с проблемами. Очень мало информации именно по этому датчику. По сути нужно считать аналоговый сигнал с выхода датчика и преобразовать его в уровень газа озона в ppm. Есть датчик на плате с компаратором MQ131 и Ардуино с LCD дисплеем. Судя по даташиту есть резистор у датчика который подгоняет диапазон измеряемой величины (на плате он уже установлен). Выход датчика подсоединяется к АЦП ардуино... Вопрос как перевести величину на АЦП ардуино в PPM ? Как добится реальных замеров с этого датчика и как с ним работать? Даташит на датчик: http://www.dimitra.by/files/datasheets/air-quality-control-gas-sensor.pdf Тут кто-то уже хотел подключить: http://forum.arduino.cc/index.php?topic=112882.0 Тут исходник Ардуино проекта под любой из известных датчиков: https://github.com/empierre/arduino/blob/master/AirQuality-Multiple_Gas_Sensor1_4.ino Форум где обсуждают: https://forum.mysensors.org/topic/147/air-quality-sensor/31 Примеры работы, но только с другим датчиком: http://snickser.livejournal.com/10124.html http://arduino.ru/forum/programmirovanie/rabota-s-datchikom-gaza-mq135
  4. Реле времени: управление устройствами по таймеру Программу скомпилировал -залил в ардуину ,но что то работает не так . При включении высвечивается приветствие и по прошествии времени с экрана все исчезает .При нажатии на кнопку энкодёра высвечивается меню ,но сразу же исчезает с экрана по отпускании кнопки.Что то менять в меню возможно только при удержании нажатой кнопки -чтобы перейти к другому пункту меню приходится отпускать кнопку с экрана все исчезает и при следующем нажатии высвечивается уже другое меню .Что в скетче не так объясните товарищу дубу .Программу скетча спрятал тут .Если надо сниму все действия на видио . Да заливаю программу в ардуино нано -может надо как по схеме в ардуино уно ?
  5. Как из AV сигнала создать файл mp4 с помощью ардуино или другим способом без покупки специализированных комплектующих?
  6. Добрый день. Есть идея переделать купленный в Китае регулятор мощности вот такой , а именно избавится от панели управления с кнопками и вместо нее использовать ардуино. Сама панель управления подключается к регулятору при помощи 4-х жильного провода. На панели управления присутствуют две кнопки (+/-), дисплейный модуль, вероятно электронный потенциометр, микросхема, вероятно для управления экраном и сигналами от кнопки, и всякая мелочевка. По хорошему бы подцепиться на эти 4 провода и эмитировать сигналы от панели управления при помощи ардуино, значение о текущем установленной величине, также получать с этих проводочков. Вот только не знаю как такое реализовать, может кто поделится опытом? С чего начать и как все провернуть?
  7. Всем здравствуйте! На работе задумали сделать что-то типа постамата (для личных целей коллег и сотрудников). Я взялся за это дело. Уже около месяца работаю над софтом и конструкцией, благо в этом я понимаю. Но по теме электронике я не очень силен. Я поизучал эту проблему и у меня возникло несколько вопросов. Прошу помочь с ними. 1) Я заказал блок питания на 12 вольт с Али, на сколько они вообще надежны? Не загорится ли он ни с того ни с сего? 2) У блока питания вывод, куда подключаются, грубо говоря, провод. У меня выходит 1 провод (+-), а мне нужно сделать из него 30. Я искал в интернете, но так готовых решений и не нашел. Что мне пришло в голову - развести через клеммы типо WAGO 1 провод на 6, и каждый из них еще на 5. Как вам идея? 3) Каждый провод (от питания) подключается к своему реле или мосфет-транзистору. И тут вопрос: что оптимальнее? Опять же на Али нашел модуль IRF520, т.е. их нужно 30 штук или 2 модуля реле на 12 вольт (в каждом 16 штук). 4) У Ардуино УНО 14 выводов, а мне нужно 30 (или даже больше). Как я понимаю, это решается с помощью модулей MCP23016 или MCP23017. Или, быть может, есть другие решения? 5) При срабатывании элеткрозамка может быть индуктивный выброс. Как с этим бороться? Как я понял в модулях реле уже установлен диод, т.е. ничего делать не надо. А в мосфет модулях его нет, т.е. там его нужно самому поставить?
  8. Здравствуйте. У меня такая проблема: У меня есть обычный сервопривод с 3 входами. Плюс, минус и пин для управления. Он уже стоит на моей модели, приклеенный. Но я заметил, что провод который выходит из его корпуса согнулся и практически переломился. Он не полностью отломился, но уже на границе. Что можно сделать? Как деликатно его починить?
  9. имеем: ардуино нано дисплей 1602 с i2c переходником блок релюшек 4 кнопки. все работало около часа при различних кнопкотыканиях. и на испытании произошла непонятная програмная ошибка: сначала вылезли случайные символы потом потухла подсветка, хотя как понял она управляется перемычкой. при дальнейшем перезапуске на выходах висит 0 и нет никакой реакции на нажатия. убрал из программы дисплей и она заработала. пробовал переустановить библиотеки liquid cristal i2c но не помогло. пробовал отключать дисплей. даже инвертированные выходы лежат в 0. код прилагаю #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C _lcd1(0x27, 16, 2); int _dispTempLength1=0; boolean _isNeedClearDisp1; const byte _menuParametrsArray[] PROGMEM = {1, 3, 2, 0, 0, 0, 5, 6, 1, 8, 3, 0, 2, 3, 1, 0, 0, 0, 5, 6, 1, 8, 1, 0, 3, 4, 1, 0, 0, 0, 2, 3, 1, 4, 2, 0, 4, 3, 3, 0, 0, 0, 5, 6, 1, 8, 4, 0}; bool _menuValueArray_bool[3]; const bool _menuConstantValuesArray_bool[] PROGMEM = {1, 0}; int _menuValueArray_int[1]; const int _menuConstantValuesArray_int[] PROGMEM = {3, 15, -3}; const char _flprogMenuNameString1[] PROGMEM = "dislink"; const char _flprogMenuNameString2[] PROGMEM = "attenuator"; const char _flprogMenuNameString3[] PROGMEM = "cross line"; const char _flprogMenuNameString4[] PROGMEM = "noise generaror"; const char _flprogMenuNameString5[] PROGMEM = "ON"; const char _flprogMenuNameString6[] PROGMEM = "OFF"; const char* const _flprogMenuStringsArray[] PROGMEM = { _flprogMenuNameString1, _flprogMenuNameString2, _flprogMenuNameString3, _flprogMenuNameString4, _flprogMenuNameString5, _flprogMenuNameString6}; struct _menuItemStricture { int startInArrayIndex; } ; struct _menuMainStricture { byte startIndex; byte stopIndex; bool isSwitchMenuAroundRing; _menuItemStricture currentItem; } ; _menuItemStricture _MenuItems[4]; _menuMainStricture _MainMenus[1]; String _MenuBlock_41244328_MNO; String _MenuBlock_41244328_VNO; bool _MenuBlock_41244328_OEIS = 0; bool _MenuBlock_41244328_OMUIS = 0; bool _MenuBlock_41244328_OMDIS = 0; bool _MenuBlock_41244328_OVUIS = 0; bool _MenuBlock_41244328_OVDIS = 0; bool _bounseInputD0S = 0; bool _bounseInputD0O = 0; unsigned long _bounseInputD0P = 0UL; int _disp2oldLength = 0; bool _bounseInputD2S = 0; bool _bounseInputD2O = 0; unsigned long _bounseInputD2P = 0UL; int _disp1oldLength = 0; bool _bounseInputD1S = 0; bool _bounseInputD1O = 0; unsigned long _bounseInputD1P = 0UL; bool _bounseInputD3S = 0; bool _bounseInputD3O = 0; unsigned long _bounseInputD3P = 0UL; bool _tempVariable_bool; byte _tempVariable_byte; void setup() { pinMode(0, INPUT_PULLUP); pinMode(1, INPUT_PULLUP); pinMode(2, INPUT_PULLUP); pinMode(3, INPUT_PULLUP); pinMode(4, OUTPUT); digitalWrite(4, 0); pinMode(5, OUTPUT); digitalWrite(5, 0); pinMode(6, OUTPUT); digitalWrite(6, 0); pinMode(7, OUTPUT); digitalWrite(7, 0); pinMode(8, OUTPUT); digitalWrite(8, 0); pinMode(9, OUTPUT); digitalWrite(9, 0); pinMode(10, OUTPUT); digitalWrite(10, 0); pinMode(11, OUTPUT); digitalWrite(11, 0); pinMode(12, OUTPUT); digitalWrite(12, 0); pinMode(13, OUTPUT); digitalWrite(13, 0); Wire.begin(); delay(10); _lcd1.init(); _lcd1.backlight(); _bounseInputD0O = digitalRead(0); _bounseInputD3O = digitalRead(3); _bounseInputD1O = digitalRead(1); _bounseInputD2O = digitalRead(2); _MenuItems[0].startInArrayIndex = 0; _MenuItems[1].startInArrayIndex = 12; _MenuItems[2].startInArrayIndex = 24; _MenuItems[3].startInArrayIndex = 36; _MainMenus[0].startIndex = 1; _MainMenus[0].isSwitchMenuAroundRing = 1; _MainMenus[0].stopIndex = 4; _MainMenus[0].currentItem = _MenuItems[0]; } void loop() { if (_isNeedClearDisp1) { _lcd1.clear(); _isNeedClearDisp1= 0; } bool _bounceInputTmpD0 = (digitalRead (0)); if (_bounseInputD0S) { if (millis() >= (_bounseInputD0P + 40)) { _bounseInputD0O= _bounceInputTmpD0; _bounseInputD0S=0; } } else { if (_bounceInputTmpD0 != _bounseInputD0O) { _bounseInputD0S=1; _bounseInputD0P = millis(); } } bool _bounceInputTmpD3 = (digitalRead (3)); if (_bounseInputD3S) { if (millis() >= (_bounseInputD3P + 40)) { _bounseInputD3O= _bounceInputTmpD3; _bounseInputD3S=0; } } else { if (_bounceInputTmpD3 != _bounseInputD3O) { _bounseInputD3S=1; _bounseInputD3P = millis(); } } bool _bounceInputTmpD1 = (digitalRead (1)); if (_bounseInputD1S) { if (millis() >= (_bounseInputD1P + 40)) { _bounseInputD1O= _bounceInputTmpD1; _bounseInputD1S=0; } } else { if (_bounceInputTmpD1 != _bounseInputD1O) { _bounseInputD1S=1; _bounseInputD1P = millis(); } } bool _bounceInputTmpD2 = (digitalRead (2)); if (_bounseInputD2S) { if (millis() >= (_bounseInputD2P + 40)) { _bounseInputD2O= _bounceInputTmpD2; _bounseInputD2S=0; } } else { if (_bounceInputTmpD2 != _bounseInputD2O) { _bounseInputD2S=1; _bounseInputD2P = millis(); } } //Плата:1 digitalWrite(4, (_menuValueArray_bool[1])); digitalWrite(5, !((_menuValueArray_bool[0]))); digitalWrite(13, ((((_bounseInputD0O) || (_bounseInputD1O))) || (((_bounseInputD3O) || (_bounseInputD2O))))); if (1) { _tempVariable_bool = 1; if (! _MenuBlock_41244328_OEIS) { _MenuBlock_41244328_OEIS = 1; } _tempVariable_byte = pgm_read_byte(&_menuParametrsArray[((_MainMenus[0].currentItem).startInArrayIndex)+10]); _MenuBlock_41244328_MNO = _readStringFromProgmem ((char*)pgm_read_word(&(_flprogMenuStringsArray[_tempVariable_byte - 1]))); _MenuBlock_41244328_VNO = _menuOutputValueString (0); } else { _tempVariable_bool = 0; if (_MenuBlock_41244328_OEIS) { _MenuBlock_41244328_OEIS = 0; } _MenuBlock_41244328_MNO = ""; _MenuBlock_41244328_VNO = ""; } if(_bounseInputD0O) { if (! _MenuBlock_41244328_OMUIS) { _MenuBlock_41244328_OMUIS = 1; if(_tempVariable_bool) { _menuUpEvents(0); } } } else { _MenuBlock_41244328_OMUIS = 0; } if(_bounseInputD1O) { if (! _MenuBlock_41244328_OMDIS) { _MenuBlock_41244328_OMDIS = 1; if(_tempVariable_bool) { _menuDownEvents(0); } } } else { _MenuBlock_41244328_OMDIS = 0; } if(_bounseInputD3O) { if (! _MenuBlock_41244328_OVUIS) { _MenuBlock_41244328_OVUIS = 1; if(_tempVariable_bool) { _valueUpEvents(0); } } } else { _MenuBlock_41244328_OVUIS = 0; } if(_bounseInputD2O) { if (! _MenuBlock_41244328_OVDIS) { _MenuBlock_41244328_OVDIS = 1; if(_tempVariable_bool) { _valueDownEvents(0); } } } else { _MenuBlock_41244328_OVDIS = 0; } if (1) { _dispTempLength1 = ((_MenuBlock_41244328_VNO)).length(); if (_disp2oldLength > _dispTempLength1) { _isNeedClearDisp1 = 1; } _disp2oldLength = _dispTempLength1; _lcd1.setCursor(0, 1); _lcd1.print((_MenuBlock_41244328_VNO)); } else { if (_disp2oldLength > 0) { _isNeedClearDisp1 = 1; _disp2oldLength = 0; } } if (1) { _dispTempLength1 = ((_MenuBlock_41244328_MNO)).length(); if (_disp1oldLength > _dispTempLength1) { _isNeedClearDisp1 = 1; } _disp1oldLength = _dispTempLength1; _lcd1.setCursor(0, 0); _lcd1.print((_MenuBlock_41244328_MNO)); } else { if (_disp1oldLength > 0) { _isNeedClearDisp1 = 1; _disp1oldLength = 0; } } digitalWrite(6, !((_menuValueArray_bool[2]))); digitalWrite(7, !(((String("0")).equals((String(0, DEC)))))); digitalWrite(8, !(((String("3")).equals((String(0, DEC)))))); digitalWrite(9, !(((String("6")).equals((String(0, DEC)))))); digitalWrite(10, !(((String("9")).equals((String(0, DEC)))))); digitalWrite(11, !(((String("12")).equals((String(0, DEC)))))); digitalWrite(12, !(((String("-3")).equals((String(0, DEC)))))); } String _readStringFromProgmem (char *string) { String result = String(""); while (pgm_read_byte(string)!='\0') { result=result+ char(pgm_read_byte(string)); string++; } return result; } void _menuUpEvents (byte menuIndex) { byte tempIndex = pgm_read_byte(&_menuParametrsArray[((_MainMenus[menuIndex]).currentItem).startInArrayIndex]); byte parIndex = pgm_read_byte(&_menuParametrsArray[ (((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+5]); byte parentStartIndex; byte parentStopIndex; if (parIndex == 0) { parentStartIndex = (_MainMenus[menuIndex]).startIndex; parentStopIndex =(_MainMenus[menuIndex]).stopIndex; } else { parentStartIndex = pgm_read_byte(&_menuParametrsArray[((_MenuItems[parIndex - 1]).startInArrayIndex)+3]); parentStopIndex = pgm_read_byte(&_menuParametrsArray[((_MenuItems[parIndex-1]).startInArrayIndex)+4]); } if (tempIndex == parentStartIndex) { if((_MainMenus[menuIndex]).isSwitchMenuAroundRing) { (_MainMenus[menuIndex]).currentItem = _MenuItems[parentStopIndex -1]; return; } else { return; } } (_MainMenus[menuIndex]).currentItem = _MenuItems[tempIndex - 2]; return; } void _menuDownEvents (byte menuIndex) { byte tempIndex = pgm_read_byte(&_menuParametrsArray[((_MainMenus[menuIndex]).currentItem).startInArrayIndex]); byte parIndex = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+5]); byte parentStartIndex; byte parentStopIndex; if (parIndex == 0) { parentStartIndex = (_MainMenus[menuIndex]).startIndex; parentStopIndex =(_MainMenus[menuIndex]).stopIndex; } else { parentStartIndex = pgm_read_byte(&_menuParametrsArray[((_MenuItems[parIndex-1]).startInArrayIndex)+3]); parentStopIndex = pgm_read_byte(&_menuParametrsArray[((_MenuItems[parIndex-1]).startInArrayIndex)+4]); } if (tempIndex == parentStopIndex) { if((_MainMenus[menuIndex]).isSwitchMenuAroundRing) { (_MainMenus[menuIndex]).currentItem = _MenuItems[parentStartIndex -1]; return; } else { return; } } (_MainMenus[menuIndex]).currentItem = _MenuItems[tempIndex]; return; } void _valueUpEvents (byte menuIndex) { byte valIndex = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+2]); byte itemType = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+1]); byte indexMax = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+6]); byte indexStep = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+8]); if(itemType ==3) { _menuValueArray_bool[valIndex - 1 ] = 1; return; } if (itemType == 4) { if (! indexMax == 0) { if (! (int(pgm_read_word(&_menuConstantValuesArray_int[indexMax -1])) > int(_menuValueArray_int[valIndex -1]))) { return; } } _menuValueArray_int[valIndex -1] = _menuValueArray_int[valIndex -1] + (pgm_read_word(&_menuConstantValuesArray_int[indexStep -1])); } } void _valueDownEvents (byte menuIndex) { byte valIndex = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+2]); byte itemType = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+1]); byte indexMin = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+7]); byte indexStep = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+8]); if(itemType ==3) { _menuValueArray_bool[valIndex -1] = 0; return; } if (itemType == 4) { if (! indexMin == 0) { if (! ((int(pgm_read_word(&_menuConstantValuesArray_int[indexMin - 1]))) < int(_menuValueArray_int[valIndex - 1]))) { return; } } _menuValueArray_int[valIndex - 1] = _menuValueArray_int[valIndex - 1] - (pgm_read_word(&_menuConstantValuesArray_int[indexStep - 1])); } } String _menuOutputValueString (byte menuIndex) { byte itemType = pgm_read_byte(&_menuParametrsArray[ (((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+1]); byte valIndex = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+2]); byte indexMin = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+7]); byte indexMax = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+6]); if(valIndex == 0) { return ""; } byte convFormat = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+9]); if(itemType == 3) { return _convertBoolean(itemType, convFormat, valIndex, indexMax, indexMin); } if(itemType == 4) { return _convertNamber(itemType, convFormat, valIndex, indexMax, indexMin); } return ""; } String _convertNamber(byte itemType, byte convFormat, byte valIndex, byte indexMax, byte indexMin) { if (itemType== 4) { if (convFormat == 4) { return String((_menuValueArray_int[valIndex - 1 ]),DEC); } if (convFormat == 5) { return String((_menuValueArray_int[valIndex - 1]),HEX); } if (convFormat == 6) { return String((_menuValueArray_int[valIndex -1]),BIN); } } } String _convertBoolean(byte itemType, byte convFormat, byte valIndex, byte indexMax, byte indexMin) { if (convFormat == 1) { if(_menuValueArray_bool[valIndex -1]) { return "1"; } else { return "0"; } } if (convFormat == 2) { if(_menuValueArray_bool[valIndex -1]) { return "True"; } else { return "False"; } } if (convFormat == 3) { if(_menuValueArray_bool[valIndex -1 ]) { return "Да"; } else { return "Нет"; } } if(_menuValueArray_bool[valIndex -1]) { return _readStringFromProgmem ((char*)pgm_read_word(&(_flprogMenuStringsArray[indexMax - 1]))); } else { return _readStringFromProgmem ((char*)pgm_read_word(&(_flprogMenuStringsArray[indexMin - 1]))); } } пишу в flprog i2c сканер тоже молчит и не отправляет данные через порт
  10. Пожалуйста, напишите каким образом работает миостимулятор (подробно). Мне нужен либо готовый скетч на ардуино, либо информация о токе(U,I, частота) для каждой группы мышц.
  11. дано: библиотека кнопок вида: //кнопки #include "GyverButton.h" GButton b1(A0); GButton b2(A1); GButton b3(A2); GButton b4(A3); GButton b5(A4); GButton b6(A5); GButton b7 (2); GButton b8 (3); Собственно вопрос в том, как правильно объявить масив из кнопок, чтобы легко можно было конструкцию вида: b1.tick(); b2.tick(); b3.tick(); b4.tick(); b5.tick(); b6.tick(); b7.tick(); b8.tick(); if (b1.isPress()) bitWrite(buttons, 1 -1,1); if (b1.isRelease()) bitWrite(buttons, 1 -1,0); if (b2.isPress()) bitWrite(buttons, 2 -1,1); if (b2.isRelease()) bitWrite(buttons, 2 -1,0); if (b3.isPress()) bitWrite(buttons, 3 -1,1); if (b3.isRelease()) bitWrite(buttons, 3 -1,0); if (b4.isPress()) bitWrite(buttons, 4 -1,1); if (b4.isRelease()) bitWrite(buttons, 4 -1,0); if (b5.isPress()) bitWrite(buttons, 5 -1,1); if (b5.isRelease()) bitWrite(buttons, 5 -1,0); if (b6.isPress()) bitWrite(buttons, 6 -1,1); if (b6.isRelease()) bitWrite(buttons, 6 -1,0); if (b7.isPress()) bitWrite(buttons, 7 -1,1); if (b7.isRelease()) bitWrite(buttons, 7 -1,0); if (b8.isPress()) bitWrite(buttons, 8 -1,1); if (b8.isRelease()) bitWrite(buttons, 8 -1,0); заменить на: for(i=1;i<=8;i++){ if (b{i].isPress()) bitWrite(buttons, i -1,1); if (b[i].isRelease()) bitWrite(buttons, i -1,0); } как мне объявить массив из пользовательских переменных и возможно ли это вообще с учетом разных входных данных конструктора? Благодарю всех ответивших!
  12. Сломался пульт управления беговой дорожки. Теперь хочу с помощью Ардуино управлять мотором, но не понятно как происходит управление. к панели идёт 4 контакта: чёрный красный белый зелёный. на плате 5 контактов, но 1 не используется. Как происходит управление скоростью?
  13. Достался даром электродвигатель ЭРМ-6М постоянного тока. Никак не могу заставить вращаться вал в разные стороны. Вращается только против часовой. Проблем с подключением вроде бы нету т.к есть моторчик от Momo Racing'a и он работает как положено. Может Подключен через драйвер двигателя BTS7960 к ардуино леонардо.
  14. Добрый день! Пытаюсь разобраться в теории частотного электропривода. Ремонтировал Частотник в своём цеху retuo hl3000. И lenze smd. Оба работа запустилась, только ленз разграблен Нет корпуса и кондеров и блока памяти, но у него схож с восьмикрутом блок силового управления. Решил по лучше изучить программу и выходные сигналы с восьмикрут, собрал схему в протеусе. Картинки с каждого канала управления идут сплошной чередой Импульсов описывающий полный синус вместо привычной пачки импульсов на каждый ключ. Есть ли этих способов управления названия или оба они скалярные только реализованы по разному? С последним более менее понятно, но теорию первого восьмикрут который не понял ещё. Получается по заданной формуле для каждого ключа приходит Полноценная синусоида в виде шимм, для каждой фазы верхний и Нижний ключ получают синус с инверсией или если Добавить фильтр синусоида в противофазе, правильно я понял?
  15. Доброй ночи, уважаемые. Прошу Вашего совета по следующей куче проблем для меня, т.к. не соображаю в электронике, схемах, резисторах и подобному, но дружу с компом и есть желание сделать определенный механизм, но пока нет наставления на путь истинный от специалистов) Задача состоит в следующем - хочу мотор стеклоочистителя подключить к Ардуино, но управлять им необходимо с кнопки. Шилд, например, который обрабатывает сигнал нажатия на кнопку (допустим кнопка записи), при ее активации, нажимаю на другую кнопку, которая дает команду движку вращаться по часовой стрелке. Отпускают ее, моторчик останавливается. Другая кнопка, вращение в противоположную сторону. Т.е. записал последовательность и продолжительность вращений, нажимаю вновь на кнопку запись и мои действия сохраняются. Далее на 4 кнопку жму и моя игра с моторчиком автоматически воспроизводится. Если такое выполнимо с помощью плат и шилдов без доп программирования логики, то буду ОЧЕНЬ признателен если расскажете как вкратце это осуществить или кинете ссылки к примеру на Али с нужными товарами. Если легковыполнимо, то в будущем наверное уже разберусь, как обойтись без нажатия на 4 кнопку (воспроизведения записанных действий) и запускать этот процесс, подключив датчик движения или звука. Если необходимо описывать логику или создавать типа какого-то протокола, что шилд (?) умел понимать, что я от него хочу, то подскажите среду разработки для неба, что б там по минимуму было наворотов) В принципе с основами c++ для Ардуино скорее всего придется ознакомиться. Заранее спасибо!
  16. Доброго времени суток! Если в кратце, то есть у меня шаговые двигатели Nema17. Я так понял гибридные, биполярные. Модель 17pm- k442-p5vs. Драйвер собрал на базе l298n методом ЛУТ. При подключении к ардуино двигатель вибрирует, пытается крутиться в разные стороны. Видео с проблемой и фото приложу ниже. Спасибо. Видео проблемы , Слоумо, Фото драйвера
  17. Здравствуйте. Имеется 4-х осевой драйвер tb6560 с древним lpt интерфейсом (мануал с распиновкой прилагаю). Идея в том, что бы подключить его для управления 2-мя униполярными 3rd-4Axis-TB6560-Set-User-Manual.pdfшаговиками(типа дши-200-1-1(1.5А,12В)) к Ардуино Уно , а в идеале вообще к Атмеге8.(не спрашивайте почему такой выбор, это всё "очумелые ручки")). В идеале нужно 6 цифровых выходов и +5 на Enable. Вопрос таков:возможно ли сделать такое подключение?какие особенности имеет такая схема?В каком порядке и к каким пинам подключать Ардуино (или атмегу)? Благодарю за внимание!
  18. в крацце. я спалил (не факт что умерли. не знаю как проверить) 4 разных транзистора. причина этой писанины. я не смог запустить мосфеты. делал все по схеме. все резисторы. даже диод ставил ибо нагрузка это 2амперный двигатель. подавал шим через ардуино. с разными частотами. не работает НИЧЕГО. я уже купил модуль где точно все распаяно как надо. не работает. он открыт все время. на на всю силу открыт. поставил диод. все равно не управляется ардуиной. код простейший (воид сетап:пинмод(5 аутпут); аналогврайт(5, 255)). но. когда я попровал с другой частотой void setup() { // ШИМ 8 разрядов, 62,5 кГц TCCR1A = TCCR1A & 0xe0 | 1; TCCR1B = TCCR1B & 0xe0 | 0x09; pinMode(5, OUTPUT); analogWrite(5, 0; // на выводе 9 ШИМ=10% } void loop(){ } двигатель начал пищать. я надеюсь мосфет не пробило 5 ампер от аккумулятора когда я пытался грубо его включить. а еще я делал уже без резисторв но на крутом каком то мосфете. у которого порог открытия затвора больше ноля(вольт) ирлб какойто. смотрел видео алекса гавера (заметки ардуинщика) я реально не знаю что уже делать. руки опускаются, а модель самолета и сервопривод с аппаратурой ждут. доп фото скину по надобностью (не спрашивайте почему я такой глуп и не знаю как запустить элементарный мосфет. мне 15. если поможете, куплю шоколадку)
  19. Всплыла тут давича интересная тема на форуме: http://forum.cxem.net/index.php?/topic/173977-проверка-2sc5200-и-2sa1943/ И хотя обсуждение касалось только двух определённых типов транзисторов, я подумал что вопрос затронут вобщем достаточно шире, касательно проверки на оригинальность всех аудио транзисторов, а их я думаю подделывают чаще всего. Что самое неприятное, если в других применених замена типов усилительных устройств не критична, то как раз для аудио подмена линейных транзисторов приводит к глубокому разочарованию для дизайнеров звуковых усилителей мощности. Кратко суть проэкта: Измерить бэта мощного транзистора в широком диапазоне тока (3 порядка) и построить график. Точность не хуже 1 - 3 процента, минимальная стоимость. Сложность: Заявленые требования к точности автоматически требуют проведение измерений в импульсном режиме, т.к. температура кристалла не должна менять измеряемую величину (бэта) сколь нибудь заметно. Широкий динамический диапазон измеряемых токов. К примеру, 3 порядка по току коллектора (10 мА - 10 А) это 60 дБ, плюс точность 1 % на краю диапазона ещё 40 дБ -> получается 100 дБ. В цифре требуется АЦП 17 бит и выше, и хотя 24-битных дешёвых АЦП полно на рынке, и многие из них потянут 16-18 бит с низким уровнем шума в реальных условиях, НО все они сигма-дельта и не подходят по пункту 1 - для импульсных измерений. Решение, выбраное мной. Упрощённая схема: Как видим, два генератора тока по базам, и измеритель тока коллектора/эммитера. Для автоматизации я выбрал ардуино Уно, самую распостранённую, простую в программировании и низкой стоимостью платформу. Кроме того для неё легко найти цветной ЖКИ с тач скрином. Минусы: не имеет ЦАПа, АЦП всего 10 бит. Что получилось : ЦАП 12-бит, достаточно быстрый, но на больших токах это и не требуется, коммутация импульсов осуществляется TB6612. 12-бит, как я уже пытался обьяснить выше очень мало, для задания тока базы требуется 17 и ещё хотя бы 5-бит для перекрытия разброса по бэта (10 - 320 или около того), поэтому в схеме использован коммутатор диапазонов, ещё примерно 10-бит - итого до 22-х. Для АЦП при таком исполнении разброс по бэта не надо учитывать, и хотя ардуино УНО не имеет програмируемого усилителя перед АЦП (как Мега) я применил софтовый подход, избыточное сэмплирование. Решение не идеальное, но стоимость и отсутсвие пинов на ардуино не оставили другого выбора. К счастью, для малых токов, увеличение длительности измерения не проблема, низкая рассеиваемая мощность на коллекторе позволяет легко масштабировать эти величину, кол-во измерений меняется от 2048 при 10мА, до 1-го на токах > 3А. Как это выглядит в "железе" и первые результаты: Выводы: присланные мне с алиэкспресс 2SB772 и 2SD882 никакие не комплементарные. Завал бэта у первых однозначно показывает подделку.
  20. Хочу сделать монстр-машинку с двигателем rs550 с металлическим корпусом на ардуино. Подскажите как управлять мотором через ардуино нано?
  21. Уважаемые электронщики и им сочувствующие! Хочу на даче собрать макет морского маяка в человеческий рост. Но для этого необходима схема управляющая светодиодами. Основное, схема должна иметь независимое питание(Солнечная панель) и быть слаботочной (5-9 вольт). Как вижу я. Маяк ориентировочно высотой 1,50-1,80 м. В маяке, с низу до верха 6 окошек (по одному 5мм светодиоду). И на верху сам маяк из 8-ми 0,5 ваттных светодиодов установленных по кругу. С наступлением темноты, включаются диоды на "1 этаже" и раз в 5-10 минут происходит действие. Диоды поэтажно (снизу вверх) начинают загораться (как будто кто-то поднимается вверх по ступеням) и после загорания самого верхнего окна, через пару секунд, включается маяк. Поочередно по кругу (эффект метеора), со скоростью 2-3 сек на круг, делает оборотов 10 и выключается. Потом в обратной последовательности гасятся окошки (светодиоды) сверху в низ и остаются два нижних, периодически и независимо включающиеся и выключающиеся (эффект присутствия). И вновь через 5-10 минут вышеописанное действие. Буду очень признателен любым советам, ссылкам, помощью. Немного умею паять, немного знаю Ардуино. Готов в разумных пределах спонсировать, разработку и сборку.
  22. Всем доброго времени суток. Решил я сделать "умную" электронную сигарету на arduino. Концепция заключается в кнопочном управлении мощностью посредством ШИМ, наличии экрана, и некоторыми защитами в виде ограничения максимального времени нажатия и уход камня в сон (режим пониженного энергопотребления) после N секунд простоя. Вводные: по нажатию кнопки запускается ШИМ и управляет полевиком, но в целях защиты я хочу ограничить время выполнения кода до 7 секунд(что бы при случайном зажатии кнопки в кармане не получить травматическую ампутацию конечностей) Проблема пришла откуда не ждали - обработка нажатой основной кнопки срабатывает как попало. Нажимая кнопку обработчик может сработать сразу и отработает как по маслу, а может и через 5 нажатий не сработать вовсе. Проверял в живую на Arduino UNO, Pro Mini (328е Меги) и в Proteus'е. Симптомы одни и те же. Проблема очевидно в коде но я в упор не вижу в чем может быть загвоздка. Уровень у меня "штота умею" поэтому не судите строго. #define pwmPin 5 #define buttonStart 3 #define maxOnTime 7000 //максимальное время выполнения условия нажатой кнопки #define RED_LED 7 #define GREEN_LED 8 int power = 150; //boolean StartState; boolean StartStateFlag; //Флаг кнопки Старт unsigned long pressTime; void setup() { pinMode(pwmPin, OUTPUT); pinMode(buttonStart, INPUT); pinMode(RED_LED, OUTPUT); pinMode(GREEN_LED, OUTPUT); Serial.begin(9600); //чисто для отладки } void loop() { if (digitalRead(buttonStart) && StartStateFlag && ((millis() - pressTime) <= maxOnTime)) { // (1) если кнопка старт нажата И была отпущена И нажата менее 7 секунд выполняем: analogWrite(pwmPin, power); //запуск ШИМ Serial.println("PWM_ON"); digitalWrite(GREEN_LED, HIGH); digitalWrite(RED_LED, LOW); } else { // (2) иначе StartStateFlag = false; // кнопка небыла отпущена analogWrite(pwmPin, 0); digitalWrite(GREEN_LED, LOW); Serial.println("PWM_OFF"); pressTime = millis(); } if (!digitalRead(buttonStart)) { //(3) если кнопка не нажата analogWrite(pwmPin, 0); //остановка ШИМ Serial.println("PWM_OFF"); digitalWrite(RED_LED, HIGH); StartStateFlag = true; //была отпущена и можно входить в условие с нажатой кнопкой (1) } } И файлы: сам скетч, .elf и .hex для шПротеуса и проект Протеус. P. S. ШИМ в Протеусе не работает в принципе, в железе все ОК BUTTON_TEST.ino BUTTON_TEST.ino.eightanaloginputs.hex BUTTON_TEST.ino.elf BUTTON_TEST.ino.with_bootloader.eightanaloginputs.hex ButtonTest.pdsprj
  23. Необходимо собрать устройство на ардуино: Управление одним сервоприводом (плавная регулировка 180 градусов) по блютуз с телефона. Задача Питание для привода-аккумулятор (пока не знаю какой именно, нужно подсказать) Минимизировать электропотребление, сделать так что б в спящем режиме не было расхода энергии, или почти не было. Может убрать светодиоды из платы, или ещё каким то образом. Устройством буду пользоваться время от времени и не хотелось бы аккумулятор часто заряжать. Основные комплектующие в наличии, думал сам разберусь но нет ни времени, не особого желания это изучать. Территориально Москва. Привезу комплектующие куда скажете, но желательно ЗАО
  24. Всем доброго времени суток! Никак не могу найти простое решение своей проблемы. Подскажите пожалуйста! Думаю над сборкой многоканального аудио ресивера с управлением от ардуино. Есть идея собрать усилитель(ресивер) 5.1 Не хочется травить платы, поэтому задействую 2 двухканальных усилителя на готовых платах на ТДАшках, и 2 одноканальных для центрального канала и сабвуфера, тоже на ТДАшках. Ресивер дожен иметь 5.1 канальные входы для подключения к компьютеру (фронт, тыл, центр и сабвуфер), стереовход(AUX), и блютуз(допустим тоже простой стереовход). Коммутировать все это дело должна ардуинка с релейными модулями(это все понятно). Суть проблемы вот в чем: как коммутировать сигнал с разных источников звука, чтобы не было проникновения каналов в друг друга? Допустим, включаю обьемный звук с компьютера, нажимаю кнопку, арудуина подключает через реле питание усей, сигнал от входов идет каждый на свои усилитель. А потом переключаю допустим на обычный стерео вход, и нужно его как то коммутировать снова на усилитель фронтальной акустики и, например, на усилитель сабвуфера, и при этом чтобы полностью исключить сигнал от входов с компьютера (от входов многоканального звука). Проще говоря, нужно как то иметь около 5-6 входов аудио сигнала и иметь возможность с ардуино перенаправить эти сигналы на 5-6 выходов на усилители. Можно ли все это проделать с мультипликаторами, или, допустим, с матрицей вроде MT8816??? Буду благодарен за любые подсказки)
  25. Здравствуйте уважаемые техники, мой вопрос может показаться многим глупым, но я учусь в Латвии на мехатроника, знаю необходимые формулы и умею проводить расчеты, но я не понимаю, по моему, самого важного, при построении печатных плат с микроконтроллерами (в основном atmega328) я не знаю по какому принципу, где, когда и почему нужно добавлять конденсаторы, зачеты сдавал только благодаря копированию конденсаторов с платы Ардуино на свою, все работает но долго схемы копировать я не смогу. Можете, пожалуйста, посоветовать какую нибудь литературу или хотя бы простой принцип что бы понять принцип добавления конденсаторов (да и резисторов) в схему при том, что в схеме есть микроконтроллеры, например: сейчас я проектирую схему с участием atmega328 и sx1278, программу написать могу, плату развести могу, но куда и какие элементы ставить, мне не понятно. Спасибо.
×
×
  • Создать...