Например TDA7294

Форум РадиоКот • Просмотр темы - "Умный" выключатель ДХО и ПТФ для мотоцикла
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 17:26:18

Часовой пояс: UTC + 3 часа


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



Начать новую тему Ответить на тему  [ Сообщений: 27 ]    , 2
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: "Умный" выключатель ДХО и ПТФ для мотоцикла
СообщениеДобавлено: Чт ноя 21, 2019 15:40:32 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6618
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
написал программу, исполняющую твой алгоритм, для реализации задержек применен таймер Т0
фильтрация нажатий происходит в макросе (чтобы не писать руками одинаковый код для каждой кнопки)
для экономии питания настроил спящий режим (между опросами кнопок мк спит), и на всякий случай завел "собаку"...
________
сейчас твой алгоритм скачаю... :)

Добавлено after 12 minutes 5 seconds:
думаю мой алгоритм ты сможешь поправить при необходимости...
____
расследую поведение ламп... если ДХО включена маслом, а фара кнопкой, то хай_бим уже ничего не меняет... может при включении фары ДХО следует гасить?

Добавлено after 2 hours 15 minutes 10 seconds:
параметры в функцию можно передавать через регистр или через программный стек...
в случае стека выделяется переменная с постоянным адресом (обычно регистр Y), хранящая указатель стека
при записи в стек, её значение уменьшается (т.е. она уже указывает на соседнюю ячейку), при извлечении — увеличивается... тут важно сколько положил, столько (причем соблюдая обратный порядок) взял... иначе всё собьётся
(не путай с аппаратным стеком - он для другого)...

Добавлено after 7 minutes 20 seconds:
С компиляторы поступают также, но от программиста это скрыто...


Вложения:
ДХО.zip [69.05 KiB]
Скачиваний: 258

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "Умный" выключатель ДХО и ПТФ для мотоцикла
СообщениеДобавлено: Чт ноя 21, 2019 19:35:18 
Родился
Аватар пользователя

Зарегистрирован: Чт ноя 14, 2019 22:11:51
Сообщений: 11
Откуда: Москва
Рейтинг сообщения: 0
Круто! Вот реально. Я даже половины пока не понял, как работает. Но, работает быстрее, и занимает меньше места в памяти.

_________________
Свидетель Волшебного дыма


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "Умный" выключатель ДХО и ПТФ для мотоцикла
СообщениеДобавлено: Пт дек 06, 2019 13:22:22 
Родился
Аватар пользователя

Зарегистрирован: Чт ноя 14, 2019 22:11:51
Сообщений: 11
Откуда: Москва
Рейтинг сообщения: 0
Почти финальная (вторая уже) версия выглядит так. Потом, были некоторые правки по печатной плате, уже исходя из опыта этой. Но я, ещё одну делать не буду.
Изображение Изображение
Плата под заливку компаундом, в корпус 40х40х20мм из чипидипа
Собрано, проверено, работает. В прошивке, небольшие правки (переназначение выводов, и ещё что-то). За саму прошивку, спасибо Ivanoff-iv


Вложения:
BMWdrl_last.zip [49.88 KiB]
Скачиваний: 236

_________________
Свидетель Волшебного дыма
Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: "Умный" выключатель ДХО и ПТФ для мотоцикла
СообщениеДобавлено: Сб янв 30, 2021 23:10:50 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 102
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Добрый вечер уважаемые коты. Вопрос. Как сделать так, что бы микроконтроллер перевести в режим сна. А потом, по нажатию кнопки, вывести его из сна и выполнить определенный код. После завершения вновь установить режим сна. Тут на досуге накопипастил код. Дополнительный стоп-сигнал (для авто/мото) с разбегающимися при включении огоньками и сбегающимися при выключении. Просто долго пыхтел над тем как правильно спать. Побродил по разным форумам и получилось такое.. Вроде как и вопрос - не вопрос.
main.cpp
Спойлер
Код:
/* ATtiny85 hardware SPI master + 74HC595 */
#define F_CPU 128000UL // 128/8  kHz clock speed
#include <avr/io.h>
#include <avr/sleep.h>
#include <avr/interrupt.h>
#include "tinySPI.h"

#define BUTTON  PB4   

const uint16_t inhibitor1(3);
const uint16_t inhibitor2(4);

const uint8_t led_pattern[9] = {
   0b00000000,
   0b10000000,
   0b11000000,
   0b11100000,
   0b11110000,
   0b11111000,
   0b11111100,
   0b11111110,
   0b11111111 };

ISR( PCINT0_vect ){
   sleep_disable();// Проснуться
   
if( !(PINB & (1<<BUTTON)) ){// Кнопка нажата
for(int8_t i=0; i<9; i++){
    PORTB &= ~(1<<DI_DD_PIN);
   for(uint16_t n=0; n<inhibitor2; n++){ SPI.transfer(led_pattern[i]); }
   PORTB |= (1<<DI_DD_PIN); }   
}

if( PINB & (1<<BUTTON) ){// Кнопка отпущена
for(int8_t i=8; i!=-1; i--){
    PORTB &= ~(1<<DI_DD_PIN);
    for(uint16_t n=0; n<inhibitor1; n++){ SPI.transfer(led_pattern[i]); }
    PORTB |= (1<<DI_DD_PIN); }   
}
    sleep_cpu();// Спать!
}

int main(void){
   
PORTB|=  (1 << BUTTON); //Устанавливаем pull-up режим ножки BUTTON
DDRB &= ~(1 << BUTTON); //Настраиваем ножку BUTTON в режим входа

/* Не настраиваемое прерывание PCINT0 по любому фронту */
GIMSK |= (1<<PCIE);   // Разрешаем внешние прерывания PCINT0.
PCMSK |= (1<<BUTTON); // Разрешаем по маске прерывания.

    SPI.begin();  // запустить аппаратный SPI (библиотека настраивает контакты часов и данных)

    DDRB |= (1<<DI_DD_PIN); // OUTPUT LATCH_PIN
    PORTB |= (1<<DI_DD_PIN); //Устанавливаем pull-up режим ножки LATCH_PIN
   
/* Подготовка ко сну */
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // Set Sleep Mode: Power Down
sleep_enable();

sei(); // разрешаем прерывания

sleep_cpu();// Спать!

    while (1) {/* гараж пустой, делать нечего */}
   
}
tinySPI.cpp
Спойлер
Код:
// Arduino tinySPI Library Copyright (C) 2018 by Jack Christensen and
// licensed under GNU GPL v3.0, https://www.gnu.org/licenses/gpl.html
//
// Arduino hardware SPI master library for
// ATtiny24/44/84, ATtiny25/45/85, ATtiny261/461/861, ATtiny2313/4313.
//
// https://github.com/JChristensen/tinySPI
// Jack Christensen 24Oct2013

#include "tinySPI.h"

void tinySPI::begin() {
   
    USICR &= ~(1<<(USISIE) | (1<<USIOIE) | (1<<USIWM1));
    USICR |=  (1<<(USIWM0) | (1<<USICS1) | (1<<USICLK));
   
    SPI_DDR_PORT |=  (1<<USCK_DD_PIN);   // set the USCK pin as output
    SPI_DDR_PORT |=  (1<<DO_DD_PIN);     // set the DO pin as output
    SPI_DDR_PORT &= ~(1<<DI_DD_PIN);     // set the DI pin as input
}

void tinySPI::setDataMode(uint8_t spiDataMode) {
if (spiDataMode == SPI_MODE1){ USICR |=  (1<<USICS0); }
                         else{ USICR &= ~(1<<USICS0); }
}

uint8_t tinySPI::transfer(uint8_t spiData) {
    USIDR = spiData;
    USISR = (1<<USIOIF);                // clear counter and counter overflow interrupt flag
    ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { // ensure a consistent clock period
    while ( !(USISR & (1<<USIOIF)) ) { USICR |= (1<<USITC); }
    }
    return USIDR;
}

void tinySPI::end() {
    USICR &= ~((1<<USIWM1) | (1<<USIWM0));
}

tinySPI SPI;
tinySPI.h
Спойлер
Код:
// Arduino tinySPI Library Copyright (C) 2018 by Jack Christensen and
// licensed under GNU GPL v3.0, https://www.gnu.org/licenses/gpl.html
//
// Arduino hardware SPI master library for
// ATtiny24/44/84, ATtiny25/45/85, ATtiny261/461/861, ATtiny2313/4313.
//
// https://github.com/JChristensen/tinySPI
// Jack Christensen 24Oct2013

#ifndef TINYSPI_H_INCLUDED
#define TINYSPI_H_INCLUDED

#include <util/atomic.h>

// USI ports and pins
// (Thanks to nopnop2002 for adding the definitions for ATtiny461/861 and 2313/4313.)
#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
  #define SPI_DDR_PORT DDRA
  #define USCK_DD_PIN  DDA4
  #define DO_DD_PIN    DDA5
  #define DI_DD_PIN    DDA6
#elif defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
  #define SPI_DDR_PORT DDRB
  #define USCK_DD_PIN  DDB2    // //PB2
  #define DO_DD_PIN    DDB1    // //PB1
  #define DI_DD_PIN    DDB0    // //PB0
#elif defined(__AVR_ATtiny261__) || defined(__AVR_ATtiny461__) || defined(__AVR_ATtiny861__)
  #define SPI_DDR_PORT DDRB
  #define USCK_DD_PIN  DDB2
  #define DO_DD_PIN    DDB1
  #define DI_DD_PIN    DDB0
#elif defined(__AVR_ATtiny2313__) || defined(__AVR_ATtiny4313__)
  #define SPI_DDR_PORT DDRB
  #define USCK_DD_PIN  DDB7
  #define DO_DD_PIN    DDB6
  #define DI_DD_PIN    DDB5
#else
  #error "tinySPI does not support this microcontroller."
#endif

// SPI data modes
#define SPI_MODE0 0   //0x00
#define SPI_MODE1 4   //0x04

class tinySPI {
    public:
        static void begin();
        static void setDataMode(uint8_t spiDataMode);//
        static uint8_t transfer(uint8_t spiData);//
        static void end();
};

extern tinySPI SPI;

#endif
Планирую приделать это дело на мотоцикл, только на регистре TPIC6C595N. Код взял здесь. Отвязал код от ардуины и покоцал лишнее.


Вложения:
Комментарий к файлу: Модель дополнительного стоп-сигнала в протеусе. Аппаратная реализация SPI со сдвиговым регистром.
hardware_SPI.gif [171.5 KiB]
Скачиваний: 94
Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: "Умный" выключатель ДХО и ПТФ для мотоцикла
СообщениеДобавлено: Сб янв 30, 2021 23:53:57 
Опытный кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 121
Зарегистрирован: Ср окт 04, 2017 20:47:40
Сообщений: 768
Рейтинг сообщения: 0
Вот дожили, уже и без МК ничего сделать не можете? :dont_know:
А то вся идея реализуется на паре транзисторов и светодиодах, ну или на одной-двух простых МСках.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: "Умный" выключатель ДХО и ПТФ для мотоцикла
СообщениеДобавлено: Вс янв 31, 2021 00:50:48 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 102
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Согласен. Этого всего как тараканов за баней. И схемок всяких и разных много.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "Умный" выключатель ДХО и ПТФ для мотоцикла
СообщениеДобавлено: Пн фев 01, 2021 23:48:09 
Опытный кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 121
Зарегистрирован: Ср окт 04, 2017 20:47:40
Сообщений: 768
Рейтинг сообщения: 0
Сорри, а тогда зачем так усложнять. Я прагматик и мне такое не понять. :(
Ссылка на готовое, а без :solder: настоящим "радиокотам" совсем не интересно. :))
А сваять (китаицам на зло) образно говоря, из каких-нибудь простых "трёх элементов" тоже самое и с той же логикой исполнения - вот это Да и это по нашему!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 27 ]    , 2

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y