Skocz do zawartości

Zakłócenia Arduino - układ regulujący obroty silnika


kacperek754

Pomocna odpowiedź

Witam

Udało mi się napisać program, który reguluje obroty silnika w zależności od podanego sygnału analogowego. Mam tam podany warunek za pomocą funkcji if, który daje napięcie na silnik gdy wartość sygnału analogowego będzie większa od 0V. Gdy jest podane 0V na sterowniku to arduino nie wyłącza silnika tylko obraca się z minimalnymi obrotami. Po uruchomieniu komunikacji z komputerem arduino otrzymuje sygnał 63 gdy podane jest 0 (są to wartości nie przeliczone). Sprawdziłem miernikiem i na wejście analogowe podawane jest 0V, ale arduino wykrywa jakieś zakłócenia. Z czego to może wynikać ?

Następny problem to taki, gdy testowo ustawiłem wartość minimalną zamiast 0 na 65 to zadziałało silnik się nie obraca, lecz jest ustawiony w momencie trzymającym czyli podawane jest napięcie na jedną z cewek. Mi zależy na tym, aby gdy funkcja nie jest spełniona silnik zostaje odłączony od zasilania. Jak to zaimplementować w arduino

Dziękuję za pomoc i pozdrawiam

Link do komentarza
Share on other sites

@kacperek754 ciężko o rozwiązanie problemu, jeśli nie znamy programu, schematu opisywanego urządzenia oraz innych podstawowych informacji (np. o sposobie zasilania). Zachęcam do publikacji szczegółów, które pozwolą nam domyśleć się co tak właściwie masz przed sobą 🙂

Link do komentarza
Share on other sites

Dnia 24.09.2019 o 21:12, kacperek754 napisał:

Układ zasilany jest napięciem stałym. Arduino oraz kontroler Pokeys55 który podaje sygnał analogowy zasilone są z komputera natomiast sterownik L298N i silnik krokowy zasilane są z zasilacza regulowanego ustawionego na 12V i 1.5V. Program do arduino przesyłam w załączniku

sterowanie_pr_dko_ci__silnika.rar 426 B · 1 download

Cześć,

chciałem spojrzeć w kod, ale archiwum rar  jest puste .. A mógłbyś spakować zip'em ?

Pozdrawiam

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay


#include <Stepper.h>

const int stepsPerRevolution = 200;  

Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

int stepCount = 0;  
void setup() {
}

void loop() {
  
  int sensorReading = analogRead(A0);
  
  int motorSpeed = map(sensorReading, 25, 1023, 0, 450);
 
  if (motorSpeed >25) {
    myStepper.setSpeed(motorSpeed);
   
    myStepper.step(stepsPerRevolution / 100);
  }
}

W takim razie wstawiam kod

Link do komentarza
Share on other sites

Zakłócenia mogą się pojawiać z różnych przyczyn. Może to być zewnętrzny szum elektromagnetyczny o znacznej mocy jak i wynik pracy mikrokontrolera. Można sobie z tym radzić na kilka sposobów, jak np. przez używanie ADC SLEEP MODE podczas pobierania próbek, ekranowanie toru analogowego itp. Najprostszym rozwiązaniem Twojego problemu będzie chyba pull down na pinie adc przez rezystor conajmniej  ~10k lub więcej w zależności od wartości napięcia zakłóceń (najlepiej zmierzyć lub pokombinować z wartościami rezystorów do 100k). Należy pamiętać przy tym, że wartość napięcia wejściowego może się nieznacznie zmniejszyć podczas stosowania podciągu do masy i trzeba to skompensować programowo. Można też zastosować prosty filtr RC w torze analogowym obliczony dla maksymalnej częstotliwości sygnału sterującego albo nawet filtrację aktywną z użyciem wzmacniaczy operacyjnych ale to już będzie pewnie przerostem formy nad treścią w tym konkretnym przypadku. Pozdrawiam.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.