Jump to content
Sign in to follow this  
Xray

Организация Управления С Помощью Одной Кнопки На Attiny13

Recommended Posts

Кнопки опен и клосе , это концевики , т.е. они выключают двигатель , т.е. когда вора откроются сработает концевик опен . когда закроются - клосе .

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

Если интересен проект такой какой он на данный момент , могу выложить .

Edited by DmitryS

Share this post


Link to post
Share on other sites
помехи на длинных проводах приврдят к ложным срабатываниям

Разъединить по гальванике концевые.

Share this post


Link to post
Share on other sites

Высококачественные конденсаторы Panasonic для надежности вашей электроники!

Электролитические алюминиевые конденсаторы Panasonic отличаются повышенной надежностью, длительным сроком службы, низким импедансом и выдерживают большой ток пульсаций, в то время как семейства полимерных конденсаторов Panasonic SP-CAP, POSCAP, OS-CON и HYBRID характеризуют сверхнизкий ESR и увеличенная емкость, работа при высоких напряжениях и в расширенном температурном диапазоне. Приобретая продукцию Panasonic, вы гарантированно получаете самое передовое решение для ваших задач. Для облегчения вашего выбора, мы подготовили подборку полезных материалов.

Читать статьи

Это типа на опто паре какой нибудь ?

Я хочу вот такpost-187724-0-80167600-1445272399.jpg

Edited by DmitryS

Share this post


Link to post
Share on other sites

Дмитрий если не трудно выложи пожалуйста .

Edited by N695

Share this post


Link to post
Share on other sites
                     

Вебинар "Как создать BLE-устройство на базе новейшего беспроводного микроконтроллера STM32WB55"

27 ноября 2019 года компания КОМПЭЛ приглашает разработчиков, технических руководителей и энтузиастов беспроводной связи на вебинар, посвященный новинке 2019 года – мультипротокольному беспроводному микроконтроллеру STM32WB55, который позволяет создавать устройства на базе стандартов BLE 5.0; BLE Mesh; 802.15.4/ZigBee и Thread. На вебинаре мы покажем, как с помощью привычных инструментов STM32Cube и STM32CubeMX можно создать свое первое, надежно работающее BLE-приложение.

Зарегистрироваться на вебинар

Понял спасибо еще раз..В релейном модуле 2 реле. Один управляется минусом а второй плюсом?

post-65168-0-69287900-1445275796_thumb.jpg

Share this post


Link to post
Share on other sites

Да работают два реле , но на плате 4 реле , её я заказывал нето на али , нето на ебей , первоначально мне нужно было 3 реле , а таких плат не нашел только на 4 , но вы можете заказать на два реле , такие есть и дешевле , и схемотехнически они одинаковы .

Edited by DmitryS

Share this post


Link to post
Share on other sites

S4 выполняет ту же самую роль что и S2,S3 В принципе и S4 можно было и подключить параллельно к S2,S3

Edited by N695

Share this post


Link to post
Share on other sites

S4 , срабатывает с задержкой , а S2 и S3 реагируют практически мгновенно . Роль у них одинаковая выключить двигатель , разница в том что S4 срабатывает с задержкой , если убрать эту задержку , то пусковой ток двигателя будет сразуже его выключать .

Edited by DmitryS

Share this post


Link to post
Share on other sites

Я в протеусе не заметил эту задержку..Поэтому и спросил..))

Сделал изменение в протеусе. Удалил оптроны и подключил выходы контроллера через транзисторы к реле . И заметил эту задержку. Все теперь ясно..

Прикрепил измененный вариант протеуса .

post-65168-0-56480000-1445317276_thumb.jpg

Proteus.rar

Edited by N695

Share this post


Link to post
Share on other sites

Задержка всего 300мсек , не очень заментна .

По поводу изменений , активный уровень порта для управления реле = 0 , если уж и зменять оптроны , то нужно на p-n-p транзисторы , а если как сделали вы , то нужно переписывать код программы , иначе реле всегда будут включены , хотя сути работы устройства это не меняет , но это не есть гуд . Да и не советовал отказываться от оптронов , к томуже вся опторазвязка реализована на модуле реле , стоит этот модуль копейки , у нас даже одно реле не купишь по такой цене , а тут готовое решение почти задаром .Вот смотрите сами , что можно у нас купить за сто рублей .

Share this post


Link to post
Share on other sites

Спасибо за информацию...Я не обратил внимание... что при подаче питания оба реле уже включаются.Значить лучше ставить оптроны.. Я смотрю в тех модулях уже предусмотрены эти оптроны ..

Share this post


Link to post
Share on other sites

В чем и прелесть этих модулей , не надо заморачиваться согласоанием МК и нагрузки ,

Share this post


Link to post
Share on other sites

А что в роли токового датчика можно применить в этом проекте? Герконовый ?

Share this post


Link to post
Share on other sites

Обнаружился интересный глюк у Тини 13А . С наступлением холодов , ворота стали ужасно глючить , нажимаешь на кнопку , ворота начинают открываться , потом жми - не жми на кнопку , ни на что не реагируют , проверил тестером , активный уровень на кнопке 0 , так вот , при нажатии , напряжение на порту Мк как и положено просаживается с +5V в 0 , но Мк уже не реагирует на это . Сняли , принесли домой , минут через 5 примерно , отогрелся и стал работать как и положено , взял выкинул блок на улицу , прошло минут 20 - не работает . Занес в дом , через несколько минут опять все в норме . Заменил МК на другой , вот уже 3 дня на улице , все работает как положено .

Попалс какой то теплолюбивый китайский МК )))

Edited by DmitryS

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Similar Content

    • By RIMUS1989i
      Здравствуйте. Затеялся собрать анализатор спектра на светодиодах, 20x20 светодиодов, МК ATMEGA328P. 
      Долго ломал голову, как переключать столбцы без использования МК, дабы его не загружать.И вот что у меня получилось. Набросал тестовую прошивку для теста в протеусе. 
      При инилизации подается импульс на вторую ножку U4a, и на предпоследнем столбце.
      Думал сетку сделать на 5 сдвиговых регистрах (как раз 40 сигнальных линий), но боюсь мощности МК не хватит для обработки FFT и вывода на матрицу, будет подвисать.
      Кто что думает по поводу схемы?
      бегущая строка.pdsprj Natali_2012_program.hex
    • By Максим123456789
      делаю диплом, в схеме у меня микроконтроллер PIC16F688 и мне нужно его заменить на ATmega. Не могу найти похожий
    • By Вячеслав_НС
      Здравствуйте ! подскажите , какую лучше библиотеку использовать (и где ее взять) для управления i2c atmega8 в atmel studio 7  .  задача - управлять atmega8 по i2c ,  цап  PCF8591T .
      понимаю , в интернете много примеров и библиотек , но хотелось бы пример максимально простой и точно рабочий . т.к. пока что все мои попытки не привели к успеху ... то Atmel Studio 7 при компиляции ругается на несуществующий файл ( к примеру - "stream.h") при использовании библиотеки i2c , то еще какие то грабли .
    • By Антон Плюшкин
      В общем есть небольшая тривиальная задача - сделать свитюльку. Контроллер управляет светодиодиками, цвета меняются, людишки довольны.
      Схема проста: Attiny44a -> 2n3904 x3 -> RGB-светодиод.
      Собрал, протестил, всё норм, но!
      Как только в коде я использую функцию задержки - _delay_ms (util/delay.h) - контроллер повисает!
      #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { // Input/Output Ports initialization // Port A initialization // Function: Bit7=Out Bit6=Out Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(1<<DDA7) | (1<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); // State: Bit7=0 Bit6=0 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit3=In Bit2=Out Bit1=In Bit0=In DDRB=(0<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit3=T Bit2=0 Bit1=T Bit0=T PORTB=(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Phase correct PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Non-Inverted PWM // Timer Period: 0,031875 ms // Output Pulse(s): // OC0A Period: 0,031875 ms Width: 0 us // OC0B Period: 0,031875 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00); TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00); TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Ph. correct PWM top=0x00FF // OC1A output: Non-Inverted PWM // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: 0,031875 ms // Output Pulse(s): // OC1A Period: 0,031875 ms Width: 0 us // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0); // Timer/Counter 1 Interrupt(s) initialization TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1); // External Interrupt(s) initialization // INT0: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-11: Off MCUCR=(0<<ISC01) | (0<<ISC00); GIMSK=(0<<INT0) | (0<<PCIE1) | (0<<PCIE0); // USI initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=(0<<USISIE) | (0<<USIOIE) | (0<<USIWM1) | (0<<USIWM0) | (0<<USICS1) | (0<<USICS0) | (0<<USICLK) | (0<<USITC); // Analog Comparator initialization // Analog Comparator: Off // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); ADCSRB=(0<<ACME); // Digital input buffer on AIN0: On // Digital input buffer on AIN1: On DIDR0=(0<<ADC1D) | (0<<ADC2D); // ADC initialization // ADC disabled ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); unsigned char VL_OCR0A = 0, VL_OCR0B = 0, VL_OCR1A = 0; OCR0A = 0; OCR0B = 0; OCR1A = 0; while(1) { _delay_ms( 100 ); VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } } Т.е. если указать задержку в начале цикла, то светодиод не светится вообще.
      Если задержку убрать - светодиод немного подсвечивает всеми цветами.
      while(1) { _delay_ms( 100 ); // <--- ЗАДЕРЖКА --- VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } Где я накосячил?
      З.Ы.: Замечаний по поводу оптимизации кода, излишних переменных и п.р. прошу не писать - изощряюсь как могу ибо не пойму почему не работает
    • By LegionKC
      Добрый день.
      Экспериментирую с платой TP4056 и MK ATmega8, конкретнее - пытаюсь собрать простенькое зарядное устройство с выводом параметров при зарядке/разрядке на АЦП МК. Для измерения тока нашел ACS712. Думаю, что получится выводить ток при зарядке (т.е. когда идет питание на TP4056 и нагрузка отключена) и при разрядке (питание выключено, нагрузка подключена). Нагрузка - резистор. Возникла проблема с измерением напряжения на АКБ. Вернее, проблема с отсутствием идей как это сделать. Может какую-нибудь схему делителя напряжения нужно сделать? Прошу помочь советом. Схему из пэинта прилагаю.
      Спасибо.
       

×
×
  • Create New...