Skocz do zawartości
Otiscom2

Jak zamienić sygnał z manetki na taki do ESC?

Pomocna odpowiedź

Napisano (edytowany)

Witam, wie ktoś jak mogę kontrolować esc ( fvt 120a ) manetką elektryczną przez arduino ? Bezpośrednio nie mogę ponieważ manetka daje sygnał analogowy a do regulatora wchodzi jakiś inny . Jak w arduino zrobić taką zamianę ? Chodzi mi o to aby arduino zadziałało jak tester serw, ponieważ on działał przy tym regulatorze.

Edytowano przez Otiscom2

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

@Otiscom2, wnioskuję (chociaż podałeś mało informacji), że manetka to potencjometr, natomiast do regulatora ESC "wchodzi" prawdopodobnie sygnał PWM (https://forbot.pl/blog/kurs-arduino-silniki-pwm-serwomechanizm-zewnetrzne-biblioteki-id3913 - początek artykułu, ESC odczytuje np. wypełnienie 0% jako brak obrotów, a 100% - maksymalne obroty).

Należy odczytać rezystancję i na jej podstawie wygenerować sygnał PWM - można to zrobić za pomocą tradycyjnego układu NE555, ale jeżeli chcesz arduino - nie ma problemu, poczytaj o przetworniku ADC (https://forbot.pl/blog/kurs-arduino-pomiar-napiecia-przetwornik-adc-id3819) i zastanów się jak będzie wyglądał kod generujący sygnał PWM (będzie banalny)

Edytowano przez wn2001

Udostępnij ten post


Link to post
Share on other sites

Zapomniałem dodać manetka jest kciukowa a esc umożliwa obrót silnika w obie strony. O ile dobrze zrozumiałem powstało coś takiego:

#include <Servo.h>;

Servo esc;

void setup() 
{
   esc.attach(3);
   esc.writeMicroseconds(1500);
   Serial.begin(9600);
}

void loop() 
{
  int val;
  val=analogRead(A0);
  val=map(val,178, 876, 1000, 2000);
  esc.writeMicroseconds(val);
  Serial.println(val);
  delay(100);
}

 

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Niestety nie wiem, do czego to układ, gdzie będzie służył, jak sobie wyobrażasz sterowanie, mogę zgadywać - w ESC są dwa piny - PWM od prędkości - o nim mówiłem i od kierunku - stan niski to jeden kierunek, wysoki to drugi. Jeśli silnik ma kręcić się tylko w jedną stronę, trzeba podpiąć pin od kierunku na stałe do "plusa" lub "minusa". Jeżeli ma wyglądać to w ten sposób, że zerowe obroty to środek, manetka w dół to w lewo, a w górę w prawo - też da się takie coś na arduino zrobić.

Napisz więcej szczegółów, może jakiś kod? Trudno mówić ogólnikowo 🙂

 

 

Edytowano przez wn2001

Udostępnij ten post


Link to post
Share on other sites

Racja już tłumaczę, chciałbym spróbować przerobić rower na elektryczny na podstawie tego filmu https://www.youtube.com/watch?v=9rIIJbDkpN8&amp;t=11s . Jak przewiniesz film do 4.52 tam pojawia się problem o którym mówię. Manetka kciukowa daje sygnał analogowy a ESC ( regulator prędkości do autek rc ) chce cyfrowy. Chciałbym puścić 3 kable od manetki ( gnd 5v i sygnał ) przez arduino i z arduino wyjść masą i pinem sygnałowym. W samym arduino chciałbym uzyskać zamianę niestety nie wiem jak. Próbowałem za pomocą tego kodu :

#include <Servo.h>;

Servo esc;

void setup() 
{
   esc.attach(3);
   esc.writeMicroseconds(1500);
   Serial.begin(9600);
}

void loop() 
{
  int val;
  val=analogRead(A0);
  val=map(val,178, 876, 1000, 2000);
  esc.writeMicroseconds(val);
  Serial.println(val);
  delay(100);
}

niestety brak reakcji  ze strony Esc😞. Dodatkowym problemem jest fakt, że potrzebuję aby silnik kręcił się tylko w jedną stronę a nie w dwie , myślę że można tak wyskalować wartość wychodzącą z arduino że problem zniknie lub popróbować inaczej skalibrować sam regulator.

Udostępnij ten post


Link to post
Share on other sites

no tak z manetki czyli jak zwykły potencjometr to masz ok analogread(A0) , a sterowanie to jak serwem czyli sygnał 1500 to środek 1000 w jedną stronę,a 2000 w druga . zmień map() z 1000 na 1500 lub odwrotnie z 2000 na 1500. A

9 godzin temu, wn2001 napisał:

@Otiscom2, wnioskuję (chociaż podałeś mało informacji), że manetka to potencjometr, natomiast do regulatora ESC "wchodzi" prawdopodobnie sygnał PWM (https://forbot.pl/blog/kurs-arduino-silniki-pwm-serwomechanizm-zewnetrzne-biblioteki-id3913 - początek artykułu, ESC odczytuje np. wypełnienie 0% jako brak obrotów, a 100% - maksymalne obroty).

Należy odczytać rezystancję i na jej podstawie wygenerować sygnał PWM - można to zrobić za pomocą tradycyjnego układu NE555, ale jeżeli chcesz arduino - nie ma problemu, poczytaj o przetworniku ADC (https://forbot.pl/blog/kurs-arduino-pomiar-napiecia-przetwornik-adc-id3819) i zastanów się jak będzie wyglądał kod generujący sygnał PWM (będzie banalny)

tu masz sterowanie serwomechanizmem to sama co esc, wątek o pwm 

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Jeżeli ta manetka jest dedykowana do ebików to najpewniej jest zbudowana na halotronie. Oznacza to tyle, że nie uzyskasz zmiany napięcia od 0 do VCC tylko od (o ile dobrze pamiętam) 1V do 4.2V. Wyjście poza tę granicę w jedną lub drugą stronę oznacza najczęściej uszkodzenie halotrona (niektóre sterowniki ebikowe potrafią to wykryć). Najłatwiej będzie to zmierzyć zasilając manetkę z 5V i sprawdzając napięcie wyjściowe w obu skrajnych pozycjach.

Udostępnij ten post


Link to post
Share on other sites

Dzięki wszystkim za szybką pomoc @Mechano tak, ta manetka jest do ebików dlatego w map() jest od 178 do 876 . Na zwykłym potencjometrze było by od 0 do 1023 chyba. @simpson777 Dzięki tobie ESC ożyło wystarczyło dać 1500, 2000 . Jak silnik ma kręcić się w drugą stronę to 1500 - 1000 . Dzięki wszystkim temat do zamknięcia 🙂

 

Udostępnij ten post


Link to post
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »

×