Spisu treści:

Moduł Arduino Resolver: 4 kroki
Moduł Arduino Resolver: 4 kroki

Wideo: Moduł Arduino Resolver: 4 kroki

Wideo: Moduł Arduino Resolver: 4 kroki
Wideo: Подключение и настройка nRF24L01 к Arduino (модуль беспроводной связи) 2024, Listopad
Anonim
Moduł resolwera Arduino
Moduł resolwera Arduino

Tinee9 powraca z nowym modułem. Ten moduł nazywa się modułem Resolver.

W świecie sterowania silnikami istnieją różne rodzaje lub metody wykrywania pozycji. Metody te obejmują czujniki Halla, czujniki XY, przelicznik, RVDT, LVDT, kierownice pola, potencjometr itp. W zależności od konfiguracji każdego z tych czujników można nawet określić swoją bezwzględną pozycję bez konieczności zapisywania ostatniej pozycji w pamięci.

Moduł, którego używam, może być użyty do demodulacji RVDT, LVDT i Resolver, ale na dzisiejszy cel będzie to demodulacja resolvera.

Zrozumienie techniczne: poziom ekspercki

Samouczek Plug and Play: poziom średniozaawansowany

Kieszonkowe dzieci

1: Arduino Nano

2: Moduł resolwera

3: deska do chleba

4: bateria 9,0 V lub NScope

5: Rozstrzygacz

6: 10x Przewody połączeniowe do chleba

Krok 1: Moduł resolwera

Moduł resolwera
Moduł resolwera

Jest kilka rzeczy, które możesz zrobić za pomocą przelicznika, możesz zdemodulować silnik w celu komutacji silnika, możesz uzyskać pozycję bezwzględną, jeśli nie przekroczysz punktu zerowego, i możesz pobrać prędkość z silnika.

Tam, gdzie widziałem je najczęściej używane są w lotnictwie, sterze, płetwie pocisku lub sterowaniu kamerą.

Są one zwykle nieco droższe niż czujnik potencjometru lub czujnika Halla, ale zapewniają niesamowitą rozdzielczość.

Krok 2: Konfiguracja

Ustawiać
Ustawiać
Ustawiać
Ustawiać
Ustawiać
Ustawiać
Ustawiać
Ustawiać

1: Najpierw musisz położyć arduino nano na desce do krojenia chleba

2: Musisz podłączyć pin 5V na Arduino do pinu +3V3 i pinu 5V na module resolwera (moduł może mieć zasilanie 3,3V, dając jednocześnie wzbudzenie 5V na resolwerze)

3: Podłącz RTN na Arduino do RTN na module resolwera

4: podłącz D9 na Arduino do PWM na module resolwera

5: Podłącz A0 na Arduino do MCU_COS + na module resolwera

6: Podłącz A1 na Arduino do MCU_SIN + na module resolwera

7: Podłącz przewód resolwera EX+ do EX+ na module resolwera

8: Podłącz przewód EX- resolwera do EX- na module resolwera

9: Podłącz przewód resolwera COS+ do COS+ na module resolwera

10: Podłącz 2 przewody RCOM resolwera do RCOM na module resolwera

11: Podłącz przewód resolwera SIN+ do SIN+ na module resolwera

12: Podłącz baterię 9 V do RTN (-) i VIN (+)

13: Lub podłącz Nscope +5V do 5V Pin na Arduino i RTN na Nscope do RTN na Arduino

14: Podłącz Scope do USB na PC

15: Podłącz Arduino do USB na PC

Krok 3: Załaduj kod

Załaduj kod
Załaduj kod
Załaduj kod
Załaduj kod

Skopiuj Wklej poniższy kod Arduino do swojego szkicu w Arduino IDE

To, co ten kod zrobi, to PWM w module Resolver. Moduł ten wzbudzi przelicznik i wytworzy falę kwadratową na uzwojeniach wtórnych przelicznika. Sygnały wychodzące z Sin+ i Cos+ są następnie podawane do OPAMP-a, który wyśrodkuje falę i zmniejszy moc wyjściową tak, aby przechodziła między 0-5 woltów.

Grzech+ i Cos+ są takie, jakie mają na myśli. Grzech jest o 90 stopni przesunięty w fazie z falą Kosmiczną.

Ponieważ są one przesunięte w fazie o 90 stopni, musimy użyć funkcji Atan2 (Cos, Sin), aby uzyskać prawidłową współrzędną pozycji przelicznika.

Następnie Arduino wypluwa, po pobraniu 4 próbek, wartość między -3,14 a 3,14, która reprezentuje odpowiednio -180 stopni i +180 stopni. Dlatego, jeśli chcesz użyć resolwera do pozycji bezwzględnej, musisz używać tylko od -180 do 180 bez nadmiernego obracania, w przeciwnym razie przewrócisz się i pomyślisz, że jesteś z powrotem na początku lub na końcu skoku siłownika. Byłby to problem, gdybyś zdecydował się użyć resolwera dla osi x lub y drukarki 3D i przewrócił się, powodując bałagan w drukarce 3D.

Mogłem trochę poprawić kod z przerwaniami, aby mieć więcej ciągłego PWMing, ale to wystarczy dla tego application.int A = A0;

int B = A1; int pwm = 9; int c1 = 0; int c2 = 0; int c3 = 0; int c4 = 0; int c5 = 0; int c6 = 0; int s1 = 0; int s2 = 0; int s3 = 0; int s4 = 0; int s5 = 0; int s6 = 0; wyjście pływakowe = 0,00; int sin1 = 0; int cos1 = 0; int stan_pozycji = 1; int get_position = 0; void setup() { // wstaw tutaj swój kod konfiguracyjny do jednorazowego uruchomienia: pinMode(pwm, OUTPUT); Serial.początek(115200); }

pusta pętla () {

if(get_position=5){ cos1 = (c1+c2)-(c3+c4); sin1 = (s1+s2)-(s3+s4); wyjście = atan2(cos1, sin1); c1 = 0; c2 = 0; c3 = 0; c4 = 0; s1 = 0; s2 = 0; s3 = 0; s4 = 0; Serial.print("Pozycja: "); Serial.println(wyjście); pobierz pozycję = 1; }

// umieść tutaj swój główny kod, aby uruchamiać się wielokrotnie:

}

Krok 4: Krok 3: Baw się dobrze

Krok 3: Baw się dobrze
Krok 3: Baw się dobrze
Krok 3: Baw się dobrze
Krok 3: Baw się dobrze

Ciesz się obracaniem przelicznika i dowiedz się, jak działa przelicznik i jakich aplikacji możesz użyć tego modułu przelicznika.

Zalecana: