Czujnik SCT013 - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Czujniki (https://forum.arduinopolska.pl/dzial-czujniki) +--- Wątek: Czujnik SCT013 (/watek-czujnik-sct013) |
Czujnik SCT013 - xuwawe - 13-12-2018 Witam, Ostatnio zakupiłem czujnik natężenia prądu SCT013 . Udało mi się ogarnąć kod na zczytywanie wartości natężenia lecz chciałbym aby mikrokontroler zaświecił diodą wówczas gdy pobór prądu osiągnie daną wartość i utknąłem w miejscu :/ Dodam, że nie jestem lotny w tych sprawach Oto co napisałem: Kod: #include <EmonLib.h> RE: Czujnik SCT013 - Robson Kerman - 13-12-2018 Być może zmienna Irms osiąga założoną wartość, ale moment w którym ją osiąga nie jest współbieżny czasowo z momentem, w którym program sprawdza ifa. Tak to można obrazowo przedstawić. Lepiej jest zastosować widełki, (nie znam założeń programu więc improwizuję) coś w stylu: Kod: if (emon1.calcIrms(1480) >= 0.01) digitalWrite(8,HIGH); RE: Czujnik SCT013 - kaczakat - 14-12-2018 Przy ułamkach nigdy nie stosuj porównania (==), wartość liczby zmiennej takiej jak float i double jest w pewnym stopniu losowa, w szczególności jeśli wykonasz wielokrotnie nawet proste obliczenia użyciem float, to coś co powinno być zgodnie z wiedzą matematyczną 1.25 może być 1.25002 i już równość nie będzie spełniona nigdy. Dodatkowo dla takiego programu jak Twój dobrze jest dobrać histerezę, tak by na granicy działania ledy nie robiły stroboskopu. RE: Czujnik SCT013 - es2 - 14-12-2018 Widzę, że Arduino libs, ponownie, NIEPOTRZEBNIE używa liczb zmiennoprzecinkowych. To jakaś choroba? Całe to Arduino to chory organizm. Delay, float, String pożerający RAM. Wywal tą chora bibliotekę EmonLib.h i te kilka linijek napisz porządnie bez użycia float. RE: Czujnik SCT013 - Smaczek - 14-12-2018 Witam, Nigdy, przenigdy nie stosuj porównania dla licz innych od całkowitych. |