Jump to content

Search the Community

Showing results for tags 'arduino'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

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

Blogs

  • Твори, выдумывай, пробуй.
  • 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 блог
  • Сага о китайском PCB сборщике
  • MEDBEDb's
  • Гнездо кукушки
  • hiMiческий блог
  • luna_kamen's блог
  • Изучаем USI на основе сверхэкономичного прототипа
  • Алекс-Юстасу
  • SUBWOOFER.RU
  • kot sansher's блог
  • Поделки стареющего пионера
  • доброжелатель2's блог
  • Grig96. Полезные заметки.
  • Attiny 0-ой и 1-ой серии (Attiny817, 1614 и прочие)
  • WaveCorp
  • 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 блог
  • BoBka777's блог
  • aleksey9900's блог
  • Нашел статью о пайке проводов к светодиодов
  • Костик0's блог
  • OPeX3's блог
  • Sem2012's блог
  • это не хлам – это часть моей жизни
  • OdiS' блог
  • aleksfil's блог
  • EmmGold's блог; AVR
  • З
  • Блог Плотникова Ильи
  • yureika's блог
  • Для начинающих
  • Fumitox's блог
  • Самоделки блог
  • ульян'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 для мягкой пневматики (страйкбол)
  • ,

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


ICQ


Skype


Интересы


Город


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


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

  1. Здравствуйте, пишу программу на АТмега2560. И возникла очень странная проблема. Код такой: #define F_CPU 16000000 #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <stddef.h> #include <math.h> #include <avr/eeprom.h> #include <avr/wdt.h> //#include "timer.h" //#include "Output_devices/status_led.h" int main(void){ cli(); //status_led_init(); DDRB |= (1<<PB6); //timer0_init(); //timer2_init(); TIMSK0 |= (1<<TOIE0); // enable timer 0 overflow interrupt TCCR0B |= (1<<CS00) |(1<<CS01); // set timer 0 prescaler factor to 64 sei(); PORTB |= (1<<PB6); _delay_ms(200); PORTB &= ~(1<<PB6); _delay_ms(200); PORTB |= (1<<PB6); _delay_ms(200); PORTB &= ~(1<<PB6); _delay_ms(200); PORTB |= (1<<PB6); _delay_ms(200); PORTB &= ~(1<<PB6); while (1) { }//while1 } Внешний кварц 16мгц на XTAL1 и XTAL2. На заводских фюзах работает. Но на фюзах взятых из арудино мега не работает. Светодиод на PB6 просто светится непрерывно. Но если закомментировать инициализацию таймера-0 работает. Как это? В чем проблема?
  2. Здравствуйте поверхностный поиск в Яндексе не дал результатов решил обратится к вам суть в следующем: к мк с логикой 5в подключена карта памяти по spi с логикой 3.3в через буферный элемент здесь все в порядке поскольку сигнал от карты памяти 3.3в из за длинны шнура он теряется и становится ниже уровня лог 1 контроллера 5в вопрос как простым методом усилить его до 5 вольт чтоб он не терялся предполагаю биполярным транзистором но по какой схеме? у меня есть такой он подойдет? http://uamper.com/products/datasheet/2N2222.pdf благодарю.
  3. Опубликовано с разрешения администрации форума В этой статье не рассматривается процесс зарядного оборудования и зарядной кучи, а также не представлено детальное внедрение мобильного приложения, апплета и облачного сервера. Данная статья посвящена реализации зарядного свайпа Great Wall на новой платформе разработки последовательного порта TFT экрана STWI056WT-01, такой как: Создание St файла, добавление страницы интерфейса, параметры кнопки, параметры компонента изображения, параметры часов реального времени и инструкции по настройке, назначение ярлыка, два метода загрузки новой платформы разработки и т.д. Структура повествования такова: 1. Введение в человеко-машинный интерфейс 2. Создание виджета интерфейса 3. Загрузка интерфейса 4. Обучение человеко-компьютерному взаимодействию 5. Программирование связи между MCU и сенсорным экраном STONE 1. Введение в человеко-машинный интерфейс Интерфейс режима ожидания зарядной сваи показан на рисунке (1). С помощью авторизации входа по QR-коду мобильного приложения и сканирующего интерфейса апплета идентифицируйте и активируйте оборудование зарядной сваи Great Wall. После сбора информации о клиенте убедитесь, что интерфейс зарядки транспортного средства подключен правильно, и перейдите на страницу мониторинга параметров зарядки в режиме реального времени, как показано на рисунке (2). Имя пользователя, ID и номерной знак отображаются на странице отображения параметров зарядки, чтобы облегчить пользователю проверку. Страница мониторинга также собирает напряжение в реальном времени, загруженное модулем зарядки. Ток (ток будет контролироваться на разных этапах и скоростях зарядки) также будет накапливать время зарядки и отображаться динамически. В процессе зарядки стоимость также будет отображаться на экране и динамически изменяться. Когда зарядка будет завершена (после быстрой зарядки будет произведено пополнение заряда, что является внутренней работой модуля зарядки, который не участвует в человеко-машинном программировании здесь), или вручную нажмите кнопку полного изменения / кнопку окончания, чтобы войти на страницу благодарности, как показано на рисунке (3). На странице благодарности, но датчик модуля зарядки распознает, что зарядный пистолет сброшен, интерфейс может автоматически перейти к интерфейсу ожидания зарядной кучи - рисунок (1). Если вы отсканируете код, вы также можете снова войти в систему, чтобы попасть на страницу контроля параметров зарядки в реальном времени - рисунок (2). Рисунок (1) интерфейс режима ожидания зарядной сваи Рисунок (2) страница мониторинга параметров зарядки в реальном времени Рисунок (3) страница благодарности 2. Создание виджета интерфейса Сначала создайте новый проект в платформе STONE designer, заполните имя проекта, разрешение выбранного экрана последовательного порта 640*480, путь к проекту и т.д. Заполненное здесь имя проекта будет использоваться в последующей отладочной загрузке для создания скомпилированных файлов (имя peoject используется как имя папки компиляции). См. рисунок (4) рисунок(4) создание интерфейса нового проекта Работа включает в себя: 1) Добавить окно 2) Импортировать изображение 3) Вставить цифровые часы 4) Кнопка переключения производственного интерфейса 5) Параметры отображения макета этикетки 6) График аддитивного GIF Ниже приведены подробные сведения по порядку. 1) Окно добавления В части настройки проекта в верхней левой части проекта щелкните правой кнопкой мыши по названию проекта. В это время во всплывающем меню выберите новое окно, чтобы добавить по очереди окна Window1, Window2, а также автоматически создаваемую при создании нового проекта домашнюю страницу_ Page - стартовую страницу. Когда вы щелкаете правой кнопкой мыши на windows1, во всплывающем меню можно выбрать Копировать, Удалить и Установить как домашнюю. Выберите Установить как домашнюю, чтобы заменить начальную страницу. Дважды щелкните windows1, чтобы развернуть или сохранить виджеты в windows1. 2) Импорт изображения Этот проект начинается с дома на трех страницах_ Импортируйте фоновые изображения в страницу, окна1 и окна2. Этот шаг должен быть выполнен первым, потому что это фон! Перед импортом фонового изображения, все сделанные виджеты будут "заблокированы" фоном. Если это кнопка, то вы обнаружите, что они не могут реализовать функцию дизайна. Поэтому не забывайте сначала импортировать фон, а затем создавать другие виджеты. Нажмите и удерживайте значок изображения в строке меню списка деталей и перетащите его на интерфейс. Фоновое изображение, конечно же, имеет размер 640 * 480 пикселей. Нет необходимости использовать мышь для наведения, а работа с клавиатурой быстрее и точнее. Как показано на рисунке (5), заполните X, y, W и h в верхней правой части параметров. Кроме того, в нижней части рисунка (5) можно выбрать фоновое изображение. Перед выбором необходимо добавить фоновое изображение на платформу. Способ добавления - нажать "+" во вкладке изображения внизу слева и выбрать по очереди картинки UI, сделанные художником, в соответствии с руководством (о копировании этих картинок в память дисплея будет сказано при загрузке интерфейса позже). Рисунок (5) координаты начальной точки и позиционирование высоты ширины 3) Поместите цифровые часы Нажмите и удерживайте значок цифровых часов в строке меню списка деталей и перетащите его на место проектирования в интерфейсе. Обратитесь к рисунку (6), чтобы установить цвет текста, размер шрифта и формат для атрибутов цифровых часов. Обратите внимание, что библиотека шрифтов для ПК не обязательно совпадает с библиотекой шрифтов для дисплея. Эффект, отображаемый на интерфейсе ПК, будет отличаться от эффекта, отображаемого на экране дисплея последовательного порта. Время и дата здесь отображаются в двух виджетах, как показано на рисунке (1), рисунке (2) и рисунке (3). Если место позволяет отображать их вместе, установите формат y-mm-dd HH: mm: SS. Если вы не хотите отображать секунды, можно использовать формат: HH: mm можно использовать. Рисунок (6) атрибуты цифровых часов 4) Кнопка переключения производственного интерфейса На странице мониторинга параметров зарядки windows1, как показано на рисунке (2), внизу справа есть кнопка full changed / end. При нажатии на нее происходит переключение на страницу благодарности windows2. Аналогично, нажмите и удерживайте значок кнопки в строке меню списка деталей и перетащите его в проектное место в интерфейсе. Ее свойства показаны на рисунке (7). Чтобы переключить страницу на window2, нужно выбрать open window для user define, а затем выбрать window2 для target name Убедитесь, что положение кнопки на рисунке и на фоне не совпадают. Кроме того, ширина дома, заднее окно, установленное значение и другие опции доступны в пользовательском определении. рисунок(7) 5) Параметры отображения макета этикетки Аналогично, нажмите и удерживайте значок этикетки в строке меню списка деталей и перетащите его на место проектирования в интерфейсе. Установите цвет текста и размер шрифта в разделе атрибутов этикетки, отрегулируйте положение и размер шрифта в соответствии с отображаемым в реальном времени напряжением (этикетка7), током (этикетка8), временем зарядки (час -- этикетка10, минута -- этикетка11, секунда -- этикетка12), стоимостью (этикетка9) и другим фоном. Здесь важным моментом является название. Названия каждого модуля должны быть разными. Данные, загружаемые из модуля зарядки, должны располагаться в соответствии с названием. Не будьте самонадеянными. 6) Аддитивный график GIF На рисунке (2) значок батареи справа - это динамическая GIF-диаграмма, показывающая текущее состояние заряжаемой батареи. Аналогично, нажмите и удерживайте значок GIF в строке меню списка деталей и перетащите его в проектное место в интерфейсе. Импорт Gif-изображений аналогичен импорту изображений. Аналогично, добавьте GIF-изображение с помощью "+" под ярлыком изображения слева. Затем выберите изображение GIF в разделе "Изображение" раздела "Свойства". 3. Загрузка интерфейса Существует два метода: A и B. A. Копирование через флэш-диск USB; B. Копирование через USB-кабель. Метод a: Выполните следующие действия: 1. Сохраните файл проекта человеко-машинного интерфейса; 2. Нажмите debug - "download" в главном меню, выберите целевую папку, и в выбранной папке будет создана вложенная папка с тем же именем, что и проект; 3. Скопируйте папку "default" во вложенной папке shell в каталог STONE на флэш-диске USB; 4. Отключите питание экрана дисплея и поверните переключатель на задней панели экрана дисплея в положение "host"; 5. Вставьте флэш-диск USB в интерфейс USB экрана дисплея, отключите другие ненужные соединения и включите питание; 6. После стабильного запуска нажмите кнопку сброса на задней панели экрана дисплея. После того как индикатор снова станет стабильным, выключите питание и верните переключатель в положение "устройство", указанное выше; 7. Проверьте, успешно ли прошла загрузка. В противном случае повторите шаги 4, 5 и 6 выше до успешного завершения. Метод B: Нажмите отладка -- "скачать" в главном меню, выберите целевую папку, и выбранный файл будет отображен В папке будет создана подпапка с тем же именем, что и проект; Используйте автономный кабель связи USB для прямого соединения компьютера и интерфейса USB экрана дисплея (интерфейс USB USB накопителя в методе a), и скопируйте папку raw / default / в подпапке с тем же именем проекта в папку "default" каталога хранения экрана дисплея! Обратите внимание, что сначала можно удалить остальные семь папок, кроме папки с изображениями в папке "по умолчанию". Папка изображений может быть занята системой при включении аппарата, и при записи будет выдана ошибка. Вы можете видеть, что папка image содержит стандартные изображения этикеток. Если добавляются новые этикетки и картинки, вы можете вручную скопировать их после сравнения файлов папки image / XX. Этот метод похож на отладку реальной машины, что более удобно и быстро! 4. Инструкция взаимодействия человека и компьютера Используются следующие инструкции STONE: A. Настройка цифровых часов B. Обновление значения метки C. Преобразование страницы A. Настройка цифровых часов Часто бывает необходимо установить часы при первом включении. В трех интерфейсах этого проекта есть шесть виджетов цифровых часов с разными именами. При включении питания достаточно сбросить часы clock1, и остальные будут синхронизированы автоматически. Обратите внимание, что формат атрибута цифровых часов установлен на y-mm-dd HH: mm: SS, который может быть изменен в зависимости от фактической ситуации на дисплее. Если вы не хотите отображать секунды, выберите формат: HH: mm. Инструкции по настройке унифицированы следующим образом: ST<{"cmd_code":"set_date","type":"digit_clock","widget":"clock1","date":"2022-03-24 12:23:46"}>ET B. Tag value update Напряжение (метка7), ток (метка8), время зарядки (час -- метка10, минута -- метка11, секунда -- метка12) и стоимость (метка9), отображаемые на странице Window1, являются компонентами меток, которые передаются модулем зарядки, а MCU посылает их на сенсорный экран последовательного порта через инструкции, связанные с метками. Инструкции, связанные с метками: set_ text Установить текст, отображаемый меткой set_ value Установить значение, отображаемое этикеткой get_ text Получить текст, отображаемый меткой get_ value Получить значение, отображаемое меткой (float) привести пример: Set text: ST<{"cmd_code":"set_text","type":"label","widget":"label4","text":"Frank"}>ET ST<{"cmd_code":"set_text","type":"label","widget":"label5","text":"123456"}>ET Set value: St < {"cmd_code": "set_value", "type": "label", "widget": "label9", "value": 1.23, "format": "%. 2F"} > et set fee 1.23 ST<{"cmd_code":"set_value","type":"label","widget":"label8","value":25,"format":"%02d"}>ET Set current 25 A Get text: ST<{"cmd_code":"get_text","type":"label","widget":"label6"}>ET Format values: %d,%02d,%03d,%04d,%05d,%06d,%f,%.1f,%.2f,%.3f,%.4f,%.5f,%.6f C. Преобразование страницы Окна, связанные с командой: open_ win Открыть любое окно (Windows, работающие в фоновом режиме, также могут быть открыты с помощью этой команды, рекомендуется) close_ win Закрыть любое окно (не рекомендуется, используйте с осторожностью) back_ win Вернуться в верхнее окно и закрыть текущее окно (не кэшировать данные текущего последовательного порта) back_ win_ to Вернуться в любое окно верхнего уровня, при этом другие открытые окна работают в фоновом режиме back_ home Вернуться в главное окно, не закрывать ранее открытое окно, а другие окна запускать в фоновом режиме; привести пример: Открыть окно Window1 ST<{"cmd_code":"open_win","type":"window","widget":"window1"}>ET Закрыть окно label_ Value ST<{"cmd_code":"close_win","type":"window","widget":"label_value"}>ET Вернитесь к верхнему окну: ST<{"cmd_code":"back_win","type":"window"}>ET Имя возвращаемого верхнего уровня - окно label_ Value, которое закрывает все окна над ним. Обычно применяется к многоуровневым окнам ST<{"cmd_code":"back_win_to","type":"window","widget":"label_value"}>ET Return to label_ Value window ST<{"cmd_code":"back_win_to","type":"window","widget":"home_page"}>ET Вернуться в главное окно Вернуться в главное окно ST<{"cmd_code":"back_home","type":"window"}>ET PS: главное окно не может быть закрыто 1. Программирование связи между MCU и сенсорным экраном STONE Программирование в среде Arduino, метод ввода baidu выгружается, чтобы реализовать нормальный английский ввод. Кроме того, вышеприведенные инструкции должны быть изменены в среде Arduino. Как показано ниже: St < {"cmd_code": "set_value", "type": "label", "widget": "label9", "value": 1.23, "format": "%. 2F"} > et the above setting fee is 1.23, which should be written in Arduino program as: Serial. println(F("ST<{\"cmd_code\":\"set_value\",\"type\":\"label\",\"widget\":\"label9\",\"value\":1.23,\"format\":\"%.2f\"}>ET")); Себестоимость является переменной с плавающей точкой, а метод передачи - последовательный Print (price, 2), с резервированием 2 десятичных знаков. Последовательный. Write (price) может передавать только 0-9, одиночные цифры. А поскольку это переменная, ее нужно передавать отдельно. Смотрите программный код ниже. Программный код видеоэффекта выглядит следующим образом: /* frank13 STONE and arduino COMM Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the file of frank. */ // Pin 13 has an LED connected on most Arduino boards. // give it a name: int led = 13; unsigned int count_ i=0; //------charged station use----------2022.03.23------ unsigned int led1s=0; unsigned int time_ 1s=0; unsigned int time_ 1m=0; unsigned int time_ 1h=0; float price=0.001; // Expenses$ // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); Serial. begin(115200); // Turn on the serial communication function and wait for the serial port to open while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } } // the loop routine runs over and over again forever: void loop() { //---Cumulative time + +------ time_ 1s = time_ 1s + 1; if(time_1s >= 60){ time_ 1s = 0; time_ 1m = time_ 1m + 1; if(time_1m >= 60){ time_ 1m = 0; time_ 1h = time_ 1h + 1; } } //------time display ----- Serial. print("ST<{\"cmd_code\":\"set_value\",\"type\":\"label\",\"widget\":\"label12\",\"value\":"); //sec Serial. print(time_1s); // Serial. write(time_1s); . The write value is specified as single byte only out 0-9, Serial. println(",\"format\":\"%02d\"}>ET"); // sec delay(100); Serial. print("ST<{\"cmd_code\":\"set_value\",\"type\":\"label\",\"widget\":\"label11\",\"value\":"); //min Serial. print(time_1m); // Serial. write(time_1s); only out 0-9, Serial. println(",\"format\":\"%02d\"}>ET"); // min Serial. print("ST<{\"cmd_code\":\"set_value\",\"type\":\"label\",\"widget\":\"label10\",\"value\":"); //hour Serial. print(time_1h); // Serial. write(time_1s); only out 0-9, Serial. println(",\"format\":\"%d\"}>ET"); // hour delay(100); price = (time_1h * 120) + (time_1m * 2) + (time_1s * 0.036); // Simple algorithm of charging cost //Here is the floating point charge price$ Serial. print("ST<{\"cmd_code\":\"set_value\",\"type\":\"label\",\"widget\":\"label9\",\"value\":"); Serial. print(price,2); // 1.2356 --- > 1.23 floating point number takes 2 decimal places Serial. println(",\"format\":\"%.2f\"}>ET"); // price $ Serial.println(F("ST<{\"cmd_code\":\"set_value\",\"type\":\"label\",\"widget\":\"label8\",\"value\":20.11,\"format\":\"%.2f\"}>ET")); digitalWrite(led, LOW); // turn the LED off by making the voltage LOW led1s = led1s + 1; if(led1s >= 2){ led1s = 0; digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) Serial.println(F("ST<{\"cmd_code\":\"set_value\",\"type\":\"label\",\"widget\":\"label8\",\"value\":20.26,\"format\":\"%.2f\"}>ET")); //current out } delay(1000); // wait for a second, range:200-2000 }
  4. Как из AV сигнала создать файл mp4 с помощью ардуино или другим способом без покупки специализированных комплектующих?
  5. Простой проект для повторения: управление любыми нагрузками с Android-смартфона при помощи Arduino (или любым МК) через Bluetooth. Приложение Led Switcher в Google Play Что понадобится приобрести: Arduino Nano (2$) Bluetooth Serial модуль (3$) Опционально Шилд реле (2$) Подключение разных типов нагрузок к Arduino: arduinoBasicConnections.pdfLed Switcher.apk
  6. Добрый день. Есть идея переделать купленный в Китае регулятор мощности вот такой , а именно избавится от панели управления с кнопками и вместо нее использовать ардуино. Сама панель управления подключается к регулятору при помощи 4-х жильного провода. На панели управления присутствуют две кнопки (+/-), дисплейный модуль, вероятно электронный потенциометр, микросхема, вероятно для управления экраном и сигналами от кнопки, и всякая мелочевка. По хорошему бы подцепиться на эти 4 провода и эмитировать сигналы от панели управления при помощи ардуино, значение о текущем установленной величине, также получать с этих проводочков. Вот только не знаю как такое реализовать, может кто поделится опытом? С чего начать и как все провернуть?
  7. В этом блоге я бы хотел рассказать о том, как создавал собственную систему для Smart home. почему бы не воспользоваться готовой системой? Все просто, я студент факультета информационных технологий и стояла цель научиться чему-то новому. Из чего состоит моя система сейчас? Это сервер на Raspberry pi, несколько плат Arduino и ESP8266, а также реле от Sonoff. Ну и собственное приложение на телефон. История создания проекта Все началось с покупки Raspberry и экспериментов над ней. Для начала пробовал использовать LAMP стек (Linux —операционная система Linux; Apache – веб-сервер; MariaDB / MySQL - СУБД; PHP – язык программирования, используемый для создания веб-приложений). Но спустя некоторое время стало понятно, что PHP не очень подходит для этих целей, лично у меня не получилось подружить с MQTT брокером. Следующим для написания сервера стал Python с микрофреймворком Flask, на нем я и остановился. Python отлично подходит для этих целей, так как его легко подружит с брокером, можно подключить телеграммы бота, а также много интересных библиотек. Следующим шагом стала разработка веб-интерфейса. После пробы использовать конструкторы для построения интерфейса стало понятно, что лучше будет учить HTML, CSS, JS и писать интерфейс самостоятельно. Для обмена информации клиента с сервером я использовал Socket.io, это позволило отображать актуальные данные без перезагрузки страницы. Элементы управления распределены по отдельным виджетам. Некоторое время спустя на странице уже отображалась погода, было несколько переключателей, слайдеров, стрелочных приборов и несколько графиков. На этом этапе самым сложным, наверное, было отразить графики так, чтобы они постепенно подгружали новые данные и смещались в лево. шаг второй. Стало ясно, что следующим этапом необходимо реализовать возможность пользователю самостоятельно создавать и настраивать виджеты при использовании системы. Этим я и занялся. Выджеты были распределены на несколько видов. Переключатель, слайдер, палитра, виджеты для отображения информации и сейчас работаю над графиками. Пользователь может выбрать тип виджета, дать ему название, прикрепить иконку, настроить топик MQTT. Далее данные формируются в массив и отправляются на сервер для обработки и хранения. Шаг третий. Дальше мне стало интересно разработать какой-то механизм для создания сценариев, так как раньше систему нельзя было назвать автоматизированной. Он стал одним из самых сложных и одновременно интересных этапов. После серии попыток было создано модальное окно, в котором пользователь может назвать сценарий, написать условие (например, если температура превысила установленное снаряжение), установить действие, которое будет выполняться, настроить уведомление, в том числе и в телеграмм. Шаг четвертый. Веб-интерфейс это конечно хорошо, но не так удобно как мобильное приложение. Так как такого опыта у меня раньше не было, добиться желаемого результата в Android studio у меня не получилось. Решил попробовать Flutter и это было правильным решением, так как процесс пошел гораздо быстрее. Сейчас функционал в нем очень скромен, можно только отобразить показания с датчиков, изменить яркость освещения, управлять RGB подсветкой, да и собственно управлять реле. Как это работает? Пользователь через веб-интерфейс что-то нажимает, эти данные передаются на сервер через socket.io, далее он в зависимости от их типа обрабатывает и передаю в MQTT брокер, а он в свою очередь на конечное устройство (ESP8266). Отображение показаний с датчиков происходит в обратном порядке. При использовании мобильного приложения обмен данных с сервером происходит через Firebase. Это позволяет управлять системой удаленно не давая серверу белый IP( Ну и мне так было проще). Функционал системы Если коротко, то на данный момент можно управлять устройствами на основе ESP. Также можно создавать сценарии, за счет чего автоматизировать определенные процессы. В планах на будущее доработать сервер, улучшить работу со сценаримами, добавить больше видов виджетов, попытаться подключить ZigBee (сейчас для этого не хватает средств). Также продолжить работу над улучшением мобильного приложения. Это моя первая статья, поэтому надеюсь на понимание и поддержку. Если вам понравится, то дальше буду расширять эту тему. Сейчас параллельно работаю над подобным сервером для теплицы, даже построил небольшой полигон для опытов 2*3 метра. Также если у вас есть какие-то полезные советы, я их с удовольствием прочту. видео в котором показана часть возможностей сервера( к сожалению видео в лучшем качестве не сохранилось) https://youtu.be/Pg35x2uVfVc. https://youtu.be/gyDZJuq2sk0
  8. Помогите пожалуйста разобраться с питанием 1) надо ли тут понижайка/ повышайка DC-DC? 2) как предохранить плату от помех при нагрузке. Скетч прошивки тоже могу выложит, он максимально простой. Также печатную плату тоже выложу как доделаю схему.
  9. Доброго времени суток, господа. Никик я не могу прошить атмегу. Всегда выводится такая ошибка: avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check. Раньше у меня получалось прошивать ее, но на 16 МГц. Решил, что способен прошить и на 8 МГц. Скачал пару библиотек и.... ничего, выдало ошибку. Первым делом я подумал, что все плохо с проводкой. У меня, кстати, TQFP32 адаптер, но я подумал, что контакт через макетную плату и UNO слишком слаб, поэтому припаял к выводам адаптера провода и вставил их в UNO. Как итог - ничего не поменялось. Менял я и UNO на NANO, переделывал схему (вставлял резистор от RES до VCC и наоборот, вставлял конденсатор между RES и GND у UNO), подключал резонатор на 16 МГц. А ошибка вся таже. Чё делать?
  10. Здравствуйте! Я реализовал передачу данных через .NET к ардуино через COM-port. Все работает, но есть задержка в пару секунд прежде чем отправленные данные будут обработаны в самой ардуино. Я рылся в инете и узнал, что якобы контроллер ждет код прошивки и если он не поступает, то данные принимаются и обрабатываются. Заранее спасибо!
  11. В видео рассмотрим схемы транзисторных ключей на биполярных и mosfet транзисторах $2 for 1-4 Layer PCBs,Get Free SMT Coupons → https://jlcpcb.com/IYB Схемы транзисторных ключей: https://oshwlab.com/naym1993/basic_transistor_schemes Про биполярные транзисторы: https://youtu.be/X9MNvAO7g2Q
  12. Всех приветствую! Сразу обозначу - опыта ноль. Прошу экспертной помощи и разъяснений. Есть задача - собрать проект лёгкого дрона, переносящего с собой малый груз (просто картонную коробку 10х10х10 см, для начала), оперирующего на горизонтальной сетке, где каждая секция пронумерована и сбрасывающий (а лучше - аккуратно кладущий) груз в определенную секцию. Итого требуется: 1) Определить способ поиска позиции дрона относительно сетки (и необходимой ячейки соответственно). 2) Определить какая Arduino потребуется. 3) Определить прочие необходимые для сборки компоненты. Заранее спасибо.
  13. Недавно я завершил проект по отпиранию двери с помощью сенсорного экрана с пронесенной картой. Как решить проблему, когда MFRC522 не называет тип при запуске Arduino #include <SoftwareSerial.h> #include <Servo.h> #include <SPI.h> #include <MFRC522.h> #include <IRremote.h> #define SS_PIN 10 // customize the two PIN ports of the RC522 #define RST_PIN 9 #define RECV_PIN 5 // IR receive pins #define CARDS 4 //number of cards #define SERVO_PIN 6 // Servo port #define BUZZ_PIN 8 //buzzer pin long int IR_ID = 0xFFABCD; //define IR variable string ESP01S_Data = "". decode_results result. const byte User_ID[CARDS][4] = { {0xDD, 0xAA, 0xBB, 0x11}, // campus card {0xAD, 0x99, 0xDD, 0xEE}, }; //Save multiple card uid values MFRC522 rfid(SS_PIN, RST_PIN); //new RC522 object Servo myservo; SoftwareSerial EspSerial(3, 2); // RX, TX IRrecv irrecv(RECV_PIN);
  14. Я хочу построить простой шлюз с arduino+nrf24l01+enc28j60, nrf24l01 принимает сигнал и enc28j60 передает его в LAN, но проблема в том, что и nrf24l01 и enc28j60 используют протокол SPI для взаимодействия с arduino, если я хочу использовать собственный lib разработки arduino, я могу выбрать только один из nrf24l01 и enc28j60, потому что они имеют общее определение (pins_arduino.h). static const uint8_t SS = 10; static const uint8_t MOSI = 11; static const uint8_t MISO = 12; static const uint8_t SCK = 13 Итак, решение состоит в том, чтобы выбрать nrf24l01 вместо использования lib development, которая поставляется с arduino, но использовать другой IO порт, который я разработал сам, это правильно?
  15. Недавно я использовал Arduino для программирования stm32, и мне нужно использовать ШИМ-выход, но кажется, что частота фиксирована на 550 Гц. Я хотел бы знать, как изменить частоту ШИМ простым и легким способом. Например, я могу использовать analogWriteFreq(3000) для изменения частоты ШИМ на 3 КГц на ESP8266, но эта функция не работает на stm32. есть ли аналогичный метод для stm32?
  16. Я считаю, что знакомиться с новым продуктом, создавая игры, очень весело и нескучно, и именно поэтому я сделал этот проект. Этот проект заключается в использовании Arduino UNO и lcd-дисплея Stone tft для разработки простой игры в крестики-нолики. Материалы, необходимые для эксперимента Arduino UNO tft lcd дисплей Stone STWI070WT-01 Принцип работы системы Задайте, что первое нажатие на экран должно быть O, второе нажатие на экран - X, проделайте этот цикл. Установите 8 массивов для хранения количества O и X в каждой строке, столбце и диагонали каждой сетки, до тех пор, пока есть три одинаковых знака является победа, то будет мигающий красный ящик, чтобы доказать победу строки, столбца или диагонали, а затем нажмите сброс, чтобы начать игру снова. Простая схема соединения Разработка графического интерфейса пользователя Прежде чем я размещу код, мне действительно нужно поблагодарить всех на форуме за исправление моей ошибки при загрузке. После решения этой проблемы, мой код был загружен на плату UNO без каких-либо проблем, что, наконец, позволило мне реализовать мой проект. Спасибо всем, кто помог мне! Здесь будет приложен демонстрационный видеоролик проекта.
  17. Мне нужно сделать структурную схему по вот такой электрической схеме для дипломного проекта. Это примочка дилея на основе ардуио нано. Сам я в электронике совсем не сведущ, выбрал такой проект только из-за программирования самой ардуины.
  18. В видео поговорим об энергоэффективности микроконтроллеров. Сравним потребление в режима сна arduino, blue pill с STM32F103 и представителя новой линейки энергоэффективных микроконтроллеров от st — STM32L552. Подробную информацию об линейке L5 можно найти тут: https://www.compel.ru/lib/143383 Пи тест часть 1: https://youtu.be/ozu1IUjH1_Q Пи тест часть 2: https://youtu.be/uLOWYE-JJpA
  19. У меня есть ESP32Cam которая берет кадры (240*176пкс. QQVGA) и пересылает их серверу по UDP. С этой частью проекта проблем нет всё работает всё ОК. Но хочу прикрутить получение данных по UDP от того же сервера причем с достаточно приличной частотой. Кто пробовал работать с такими модулями, не подскажете не будет и помехой работа с камерой, работе с сервером по UDP-протоколу. У меня есть сомнения по поводу того не будет ли эспешка в момент взятия кадра зацикливаеся на этом и в этот момент не сможет принять сообщения от сервера и управлять периферией. Подскажите пожалуйста кто может т.к. работаю с этими камнями впервые. Заранее спасибо.
  20. Добрый день! В данный момент прохожу производственную преддипломную практику (сам учусь в УРТК). Стоит задача соединить Lego EV3 и Raspberry PI по I2C интерфейсу. До этого, при работе с другими устройствами, у меня никогда не было проблем с I2C интерфейсом, но в данной связке "EV3-RPI" - начались ошибки. Перед описанием ошибок, уточню, что EV3 - Master, а Raspberry - Slave, т.к. EV3 умеет работать только в режиме Master. Первое, что бросается в глаза, это практически постоянная передача в эфир SLA пакета (адреса Slave-устройства). По-факту, именно с этого и должна начинаться передача, но в данном случае, её попросту не происходит. А, если быть точнее, то происходит она только каждый шестой раз. Следующая проблема заключается в том, что обмен данными не всегда происходит до конца. Даже если EV3 отправляет свой пакет (два байта), то ответ от Raspberry (он тоже два байта) приходит через-раз, а то и ещё реже. я также пробовал соединять EV3 с Arduino, Arduino с Raspberry, что бы найти причину, но там всё отлично работало и ошибок было ноль. Стабильный обмен двумя байтами, как и нужно. Очень нужна помощь в устранении данных ошибок! P.S: У EV3 используется нестандартный уровень лог. единицы (там он 4.3в) и обычные конверторы уровней уже не работают с ним. Поэтому, мне пришлось перепаивать его под другие номиналы подтягивающих резисторов, что бы всё заработало. В его работе нареканий нет. Ниже показаны осциллограммы работы I2C между различными устройствами, которые были задействованы.
  21. Здравствуйте. Мои знания в электронике малы, но мне необходимо подружить датчик давления и модуль тока и напряжения, если это возможно. Итак, есть датчик дифференциального давления NPH-8-172DH и модуль тока и напряжения CJMCU-219 для Arduino . Если я правильно понял то датчик отдаёт два сигнал нала в mV. Пины 5, 6 вход отдают данный по давлению на входе, пины 4, 10 по давлению на выходе. Возможно ли измерить сигнал датчика модулем CJMCU-219? Какое должно на датчик подаваться напряжение и какой должен быть ток? Как правильно подключить датчик и модуль дуг у дугу правильно?
  22. Доброго времени суток. Не смог реализовать повторный Serial.available() внутри условия Serial.available. Может кто-то уже сталкивался с этим. Задача состоит в том, что нужно зажечь светодиодные ленты WS2812b. Алгоритм действий: 1) Ожидаем появления данных на входе serial с помощью if (Serial.available()){} 2) Принимаем значения int val=Serial.paresInt(); 3)Условие сравнивания if(val>123){chess=val;} esle if(val<124){color=val;} т.е номер светодиода это chess, цвет это color 4) На смартфон отправляем 'n', для разрешения отправки следующих данных 5)Ждем уже цвет светодиода на входе serial далее по предыдущему алгоритму 6)Зажигаем указанный светодиод на указанный цвет. #include <FastLED.h> #define LED_PIN 6 #define NUM_LEDS 123 CRGB leds[NUM_LEDS]; const unsigned int DIM1 = 123; const unsigned int DIM2 = 1; const unsigned int DIM3 = 3; int ary[DIM1][DIM2][DIM3]; void setup() { Serial.begin(9600); FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS); } void loop() { if(Serial.available()){ int val=Serial.parseInt(); int chess=val; Serial.println(chess); delay(1); Serial.println('n'); clear_serail(); if(Serial.available()){int color=Serial.parseInt(); Serial.println(color); if(color>0){ if(color==124){ ary[chess][1][1]=0; ary[chess][1][2]=255; ary[chess][1][3]=0; Serial.println(ary[chess][1][1]); Serial.println(ary[chess][1][2]); Serial.println(ary[chess][1][3]); leds[chess]=CRGB(ary[chess][1][1],ary[chess][1][2],ary[chess][1][3]); FastLED.show(); Serial.println('l'); clear_serail(); } if(color==125){ ary[chess][1][1]=255; ary[chess][1][2]=0; ary[chess][1][3]=0; leds[chess]=CRGB(ary[chess][1][1],ary[chess][1][2],ary[chess][1][3]); FastLED.show(); Serial.println('l'); clear_serail(); }}} } } void clear_serail(){ Serial.end(); Serial.begin(9600); }
  23. Компания производитель вендинговых автоматов для розлива питьевой воды в поисках инженера-системотехника/инженера электронщика. График 5/2 с 9 до 18, здесь удаленный формат не рассматриваем. Место работы – г. Екатеринбург. Мы ищем специалиста, который будет делать прототипы нового для контроллера, курировать производство, проверять, дорабатывать, перепаивать, а также: Переписывать текущие программы на С++; Создавать программу для Android для конфигурации параметров контроллера через bluetooth. (т.е. предлагать новые, современные идеи и подходы для развития имеющихся контроллеров, которыми вы владеете); Предлагать новые программные продукты, среды разработки. Будет в тренде мира микроэлектроники, китайского контрактного производства. Может предложить совершенно новую реализацию наших текущих задач, чтобы это было лучше и эффективнее. В идеале, нам нужен специалист, который имеет: Опыт программирования микроконтроллеров Atmega, STM32, ESP32; Опыт работы в Altium Designer; Опыт работы в c++ (IAR, QT); Опыт работы с modbus, rs485/232, SPI. Готовы рассматривать специалистов с разным опытом, поэтому пишите, задавайте вопросы. Резюме можно отправить на почту lb@ktekt.ru (да, мы кадровое агентство), позвонить можно по следующему тел. 89068001212 - Любовь.
  24. В видео протестируем плату Nucleo G474RE и проверим насколько она быстрее Arduino Uno. Текстовый вариант инструкции, как превратить отладочную плату STM в Arduino: https://www.compel.ru/lib/132248 Плата Nucleo-G474RE: https://www.electronshik.ru/item/ST/NUCLEO-G474RE Arduino Uno: https://www.electronshik.ru/item/ARDUINO/ARDUINO%20UNO%20REV3 Репозиторий проекта stm32duino: https://github.com/stm32duino/Arduino_Core_STM32 Репозиторий benchmark’а: https://github.com/PaulStoffregen/CoreMark Пи тест, вторая часть: https://youtu.be/uLOWYE-JJpA Пи тест, первая часть: https://youtu.be/ozu1IUjH1_Q Платы XNucleo: https://www.st.com/content/st_com/en/search.html#q=xnucleo-t=tools-page=1
  25. Потребовалась в проекте простая и долгоживущая память для вобщем- то небольшого количества данных, на случай сбоя по питанию. Работа ограничивалась записью текущих изменяющихся значений и восстановлением при включении. При неспешной записи несколько раз в минуту, ресурс ATMEGA328 выбирался за 2 года гарантированной записи её родной EEPROM, происходившей по кольцу, что не очень радовало. Отступление небольшое, в нете читал статью где этот чип подвергался повышенным напряжением в 7- 9В и при снижении опять начинал работать, так это правда, случайно проверил. Ещё тестили количество циклов чтения- записи, реально намного превышает количество заявленное производителем, но у меня не тот случай где можно на это надеяться. Присутствовал на борту модуль с Алиекспресса с DS3231, на нём имелась память 24С32. Ввиду чрезвычайного удобства (модуль два в одном, и часы и память, общая шина IIC/TWI) эта микросхема использовалась для вышеуказанных целей очень долгое время. А потом всё устройство обрастало свистелками- перделками многочисленными датчиками и подвергалось давлению перфекционизма. Времени для записи, по даташиту 10ms, стало слишком много и в обрез оставалось для основной работы программы. Я посмотрел в сторону FRAM. Были заказаны на том же Али FM24С64 и 04. Частота работы до 1 Мгц, выпускаются в вариантах 5 и 3,3В, объёма, учитывая количество циклов записи- чтения 10 в 12-й степени хватало. Перепробовав безуспешно адаптировать несколько библиотек, для обычных 24СХХ, решил написать подпрограммы, напрямую работая со встроенной библиотекой Wire Arduino IDE (https://www.arduino.cc/en/Reference/Wire). Этими скетчами проверял присланные микросхемы. Для FM24C04: #include <Wire.h> byte iich = 0x50;// адрес устройства unsigned int address = 0; byte datawrite = 0x77;// чем заполнить ячейки памяти void setup() { Serial.begin(115200); Wire.begin(); Wire.setClock (400000);// скорость шины, от 3,3В через конвертер уровней TXS0108 тоже работают for (address = 0; address < 512; address ++ ) { // цикл для записи в память iic_write (address, datawrite); } for (address = 0; address < 512; address ++ ) { // цикл для чтения из памяти Serial.println (); Serial.print (address); Serial.print ("--"); Serial.print (iic_read (address),HEX); Serial.print ("--"); } } ///////////////////////////////////////////////////// void loop() { } ///////////////////////////////////////////////////// unsigned int iic_read (unsigned int adrd) { Wire.beginTransmission(iich); Wire.write(adrd); Wire.requestFrom(iich, 1); return Wire.read(); Wire.endTransmission(); } void iic_write ( unsigned int adwr, byte dat) { Wire.beginTransmission(iich); Wire.write(adwr); Wire.write(dat); Wire.endTransmission(); } Для FM24С64 меня ждали несколько шикарных, испытанных временем граблей. Перерыт инет, перечитан даташит. Внутренний подтягивающий к земле резистор internally pulled down достаточно велик для уровня наводки, воспринимаемой как логический "0" или "1". Поэтому вывод WP- обязательно к земле наикратчайшим проводом, тем более если это "сопли" на разъёмах на столе. То- же о выводах А0-А2, висящие в воздухе они давали несколько несуществующих адресов. Почему- то это не касается FM24C04 и я попался на этом чипе. Подпрограммы изменились, для чтения: unsigned int iic_read (unsigned int adrd) { Wire.beginTransmission(iich); Wire.write(adrd >> 8);// старший байт Wire.write(adrd & 0xFF);//младший байт Wire.requestFrom(iich, 1); if (Wire.available()) { return Wire.read(); } Wire.endTransmission(); } для записи: void iic_write ( unsigned int adwr, byte dat) { Wire.beginTransmission(iich); Wire.write(adwr >> 8); Wire.write(adwr & 0xFF); Wire.write(dat); Wire.endTransmission(); } Работа 5В версии (FM24C64-G) при питании 3,3В и скорости шины 400000 стабильна, что рекомендовать к работе конечно нельзя. По поводу FM24C64 (подозреваю что и С32 , С128, С256) коротко и ясно написано на https://forum.arduino.cc/index.php?topic=18946.0 пользователь alicemirror объясняет как работает чтение у этих микросхем, а поскольку они прямая замена для, например, АТ24С64, то и для них это справедливо. Дело в том, что данные из микросхемы "выстреливаются" далее без указания адреса с его автоинкрементом самой микросхемой после подтверждения от ведущего. Эту прыть и надо останавливать при получении байта :-) и способ адресации отличается от младших, с меньшим объёмом. Интересных всем проектов!
×
×
  • Create New...