Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

włączanie i wyłączanie oświetlenia z efektem ściemniania i rozjaśniania

mavi 15 Lis 2017 00:26 294 7
  • #1 15 Lis 2017 00:26
    mavi
    Poziom 19  

    Poniżej wkleję kod programu, który obsługuje dwa przekaźniki. Arduino będzie podłączone przez transoptor pod dzwonek bezprzewodowy. Moim zamiarem jest stworzenie układu, który po włączeniu przycisku dzwonka uruchomi natychmiast jeden przekaźnik, odpowiedzialny za włączenie taśmy led, a drugi przekaźnik ma się włączyć po kilku sekundach, włączając zwykłą lampkę nocną.

    W przypadku naciśnięcia ponownie przycisku dzwonkowego, przekaźnik pierwszy ma się natychmiast wyłączyć, a drugi przekaźnik ma się wyłączyć po kilku minutach.
    I taki program udało mi się stworzyć. Natomiast chciałbym by taśma led sterowana przez pierwszy przekaźnik był stopniowo rozjaśniana, a w przypadku gaszenia, również powinna się ściemnić.

    Podłączyłem pod arduino mosfet i zmodyfikowałem kod. Jednak od tego momentu zacząłem mieć problem i nie mogę uzyskać następującego efektu:
    Naciśnięcie przycisku powinno spowodować rozbłyśniecie podłączonej przez mosfet taśmy led, po 2 sekundach chciałbym by włączył się pierwszy przekaźnik, a po kilku sekundach drugi przekaźnik.
    Naciśnięcie ponowne przycisku powinno spowodować wyłączenie przekaźnika pierwszego, ściemnienie poprzez mosfet taśmy led i wyłączenie drugiego przekaźnika po kilku minutach.

    Poniżej umieszczam kod który w ogóle nie steruje mosfetem.

    Kod: c
    Zaloguj się, aby zobaczyć kod

  • #2 15 Lis 2017 09:15
    BlueDraco
    Specjalista - Mikrokontrolery

    Może najpierw poczytaj o PWM i o przerwaniach timera... Takich rzeczy nie robi się na delay().

  • #4 15 Lis 2017 20:15
    jaclew
    Poziom 15  

    Ja zrozumiałbym to tak - gdy autor wątku poczyta o PWM to dojdzie do wniosku, że na przekaźnikach i delay'ach to lepiej tego nie robić. Na tym pierwszym nie da się zrobić rozjaśniania (no chociaż na upartego dałoby się), a drugie prowadzi do lichego kodu i takiegoż samego działania urządzenia.

  • #5 15 Lis 2017 21:53
    mavi
    Poziom 19  

    Zostałem źle zrozumiany.
    Napisałem wcześniej, że podłączyłem pod Arduino mosfet IRFZ 44 i dwa przekaźniki.
    Mosfet miał rozjaśnić taśmę led a następnie miał się włączyć przekaźnik by odciążyć Mosfet i przejąć cały prąd idący do Ledów. Taki był zamysł. Drugi przekaźnik ma być do innego oświetlenia.

    Chciałem kiedyś załapać mechanizm działania funkcji timer ale nie bylem w stanie doprosić się kogoś na elektrodzie prostego programu który włączałby np diodę led, tak by zrozumieć kod i jakoś go przenosić do swoich projektów.

  • #7 15 Lis 2017 22:56
    BlueDraco
    Specjalista - Mikrokontrolery

    Zacznijmy od tego, że IRFZ44 nie może być poprawnie sterowany przez mikrokontroler. Z kolei poprawnie dobrany MOSFET będzie lepszy od przekaźnika, więc przekaźnik jest całkowicie zbędny.
    Temat sterowania MOSFET wraca tu co 2 tygodnie, podobnie jak temat sterowania LED PWM, wystarczy przejrzeć archiwum.
    Opis timerów znajdziesz w Datasheet ATmega.

  • #8 16 Lis 2017 01:43
    jaclew
    Poziom 15  

    mavi napisał:
    Napisałem wcześniej, że podłączyłem pod Arduino mosfet

    Zamiast słów pokaż schemat, który ułatwi innym analizę co i jak zostało podłączone.
    Mnie osobiście zniechęcają takie tematy gdzie trzeba się dopiero wczytywać co autor miał na myśli.

    mavi napisał:
    Chciałem kiedyś załapać mechanizm działania funkcji timer ale nie bylem w stanie doprosić się kogoś na elektrodzie prostego programu który włączałby np diodę led, tak by zrozumieć kod i jakoś go przenosić do swoich projektów.

    Co do użycia timerów to dobrą praktyką faktycznie byłoby zastosowanie się do noty Atmegi, ale gdy nie masz dużo
    silnej woli możesz utknąć na teorii. Polecam Tobie wykorzystanie gotowych bibliotek (wiem narażam się purystom C/C++)
    bo przecież Arduino ma je niejako w rodowodzie, a poza tym jest ich całkiem sporo i niektóre są nawet sensowne.
    Zastosuj nie te od zarządzania timerami ale od razu takie do planowania zadań czy do wielowątkowości (tzw. niby-
    system operacyjny)

    Zapoznaj się z tym:
    https://playground.arduino.cc/Main/LibraryList#Sched

    Osobiście polecam biblioteki leOS1 lub leOS2, które są dosyć dobrze opisane tu:
    http://www.jarzebski.pl/arduino/biblioteki/leos-2-czyli-watki-pod-arduino.html

    Powodzenia

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME