Přepínání DC motoru. Prosím o radu kodu
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Přepínání DC motoru. Prosím o radu kodu
Zdravím, budu vyrábět lineární pohon. (Řádkování drátu na cívce)
Chci ovládat směr otáčení doleva, doprava jedním tlačítkem.
Když se spínač sepne, vypnout motor na 500 ms> (změnit směr). Dále bude spínač stále sepnutý po dobu cca 3 sekund (kuly koncovému spínači, pohon už se bude pohybovat opačným směrem)
Dc motorek budou ovládat 2 relé timto zpusobem
př:
void extendActuator() {
digitalWrite(pinRelay1, HIGH);
digitalWrite(pinRelay2, LOW);
}
void retractActuator() {
digitalWrite(pinRelay1, LOW);
digitalWrite(pinRelay2, HIGH);
}
void stopActuator() {
digitalWrite(pinRelay1, LOW);
digitalWrite(pinRelay2, LOW);
}
Použito bude arduino uno. můžete identifikovat kolíky sami.
Relé bude použito : https://arduino-shop.cz/arduino/834-ard ... analy.html
Jsem začátečník, budu moc rád když mi poradíte jak bude vypadat celý kod.
Děkujeme za vaše komentáře
Chci ovládat směr otáčení doleva, doprava jedním tlačítkem.
Když se spínač sepne, vypnout motor na 500 ms> (změnit směr). Dále bude spínač stále sepnutý po dobu cca 3 sekund (kuly koncovému spínači, pohon už se bude pohybovat opačným směrem)
Dc motorek budou ovládat 2 relé timto zpusobem
př:
void extendActuator() {
digitalWrite(pinRelay1, HIGH);
digitalWrite(pinRelay2, LOW);
}
void retractActuator() {
digitalWrite(pinRelay1, LOW);
digitalWrite(pinRelay2, HIGH);
}
void stopActuator() {
digitalWrite(pinRelay1, LOW);
digitalWrite(pinRelay2, LOW);
}
Použito bude arduino uno. můžete identifikovat kolíky sami.
Relé bude použito : https://arduino-shop.cz/arduino/834-ard ... analy.html
Jsem začátečník, budu moc rád když mi poradíte jak bude vypadat celý kod.
Děkujeme za vaše komentáře
Re: Přepínání DC motoru. Prosím o radu kodu
Podivej se, jak je tu reseny debouncing pro tlacitko (to je tu oblibeny hit), hned pri stisknuti provedes zmenu smeru a debouncing das ty 3 sec.
(Stejne by bylo lepsi mit tam ty koncaky dva, pro kazdy smer jeden. Kdyz se ti to zastavi v krajni poloze tesne za uvrati, tak to po re/startu nenaboura do zdi, stejne potrebujes nejaky dalsi vypinac pro ukonceni a pak si pri spusteni/po zastaveni a vymyne civky budes moct vybrat, kterym smerem zacit motat tim, ze tomu cvrnkne do spravneho koncaku)
(Stejne by bylo lepsi mit tam ty koncaky dva, pro kazdy smer jeden. Kdyz se ti to zastavi v krajni poloze tesne za uvrati, tak to po re/startu nenaboura do zdi, stejne potrebujes nejaky dalsi vypinac pro ukonceni a pak si pri spusteni/po zastaveni a vymyne civky budes moct vybrat, kterym smerem zacit motat tim, ze tomu cvrnkne do spravneho koncaku)
Re: Přepínání DC motoru. Prosím o radu kodu
Aha, taky sem si říkal, ale stale tomu nějak nerozumím...
Tak klidně i ty 2 tlačítka a start, stop.
kdyby jste poslal nejaky ten kod bylo by to super
Tak klidně i ty 2 tlačítka a start, stop.
kdyby jste poslal nejaky ten kod bylo by to super
- jede_robot
- Příspěvky: 53
- Registrován: 15 led 2020, 21:18
- Reputation: 0
Re: Přepínání DC motoru. Prosím o radu kodu
jrt
jederobot.cz, robodoupe.cz
jederobot.cz, robodoupe.cz
Re: Přepínání DC motoru. Prosím o radu kodu
Moc díky, tak sem se pohnul. Použil kod, nahrál knihovnu ,,Bounce2,, ale stále mi nefungují ty koncáky asi bude nějaká chyba v kodu. Nekdo tam přidával v komentářích opravu, ale asi to nedokážu správně dosadit do kodu, aby to fungovalo
Je tu někdo kdo by to nějak skloubil poopravil a poslal kod ?
Ps: omlouvam se že sem takový neználek ještě
tady je ten neuplný kod
Je tu někdo kdo by to nějak skloubil poopravil a poslal kod ?
Ps: omlouvam se že sem takový neználek ještě
tady je ten neuplný kod
Kód: Vybrat vše
// Detect the falling edge
// Include the Bounce2 library found here :
// https://github.com/thomasfredericks/Bounce2
#include <Bounce2.h>
const int motorbutton = 7;
const int switchp = 5;
const int switchc = 3;
// Instantiate a Bounce object :
Bounce debouncer = Bounce();
void setup() {
Serial.begin(9600);
// Setup the button with an internal pull-up :
pinMode(motorbutton,INPUT_PULLUP);
// After setting up the button, setup the Bounce instance :
debouncer.attach(motorbutton);
debouncer.interval(500);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}
void loop() {
// Update the Bounce instance :
debouncer.update();
// Call code if Bounce fell (transition from HIGH to LOW) :
if ( debouncer.fell() ) {
Serial.println("Motor Button just pressed");
if (digitalRead(switchp)) //if this is not the intended direction for 'swichp' change to 'switchc'
motorclockwise();
else
motoranticlockwise();
delay(100);
}
//stop motor is reached limit
if(digitalRead(switchp)|digitalRead(switchc)){
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
}
void motorclockwise() {
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
}
void motoranticlockwise() {
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
}
Re: Přepínání DC motoru. Prosím o radu kodu
Neměly by se ty piny, kde máš koncáky v setupu nastavit jako input ?
Mě se to s oblibou stává
Mě se to s oblibou stává
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 7 hostů