28-02-2021, 20:32
Witam wszystkich
Próbuję uruchomić bieżnie z uszkodzonym układem sterującym.
Jak dotąd utworzyłem taki program:
int predkosc = 0;
int zmiana = 2;
void setup() {
pinMode(2,OUTPUT); // W góre
pinMode(3,OUTPUT); // W dół
pinMode(4,INPUT_PULLUP); // Start/Stop
pinMode(5,OUTPUT); // Sterowanie prędkościa silnika PWM
pinMode(6,INPUT_PULLUP); // Przycisk w gore
pinMode(7,INPUT_PULLUP); // Przycisk w dol
pinMode(8,INPUT_PULLUP); // Przycisk Przyspiesz
pinMode(9,INPUT_PULLUP); // Przycisk Zwolnij
pinMode(10,OUTPUT); //Brzeczek
digitalWrite(10, HIGH); // Brak zasilania odlacza bieżnie
digitalWrite(2,LOW); // Podnoszenie wylaczone
digitalWrite(3,LOW); // Opuszczanie wylaczone
digitalWrite(5,LOW); // Silnik wylaczony
}
void loop() {
{
if (digitalRead(4) == LOW) { //Jeśli przycisk jest wciśnięty
digitalWrite(5, HIGH); //Włączenie silnika
} else { //Jeśli przycisk nie jest wciśnięty
digitalWrite(5, LOW); //Wyłączenie silnika
}
while (digitalRead(4) == LOW) {
for (int i = 0; i <= 255; i++) {
analogWrite(5, i); //Spokojne rozpędzanie silnika
delay(25);
}
//Zatrzymujemy się w pustej pętli do ponownego zamknięcia okna
delay(25); //W pętli wprowadzamy małe opóźnienie 25ms, aby niwelować zakłócenia
}
}
{
if (digitalRead(6) == LOW) { //Jeśli przycisk jest wciśnięty
digitalWrite(2, HIGH); //Włączenie podnoszenia
} else { //Jeśli przycisk nie jest wciśnięty
digitalWrite(2, LOW); //Wyłączenie podnoszenia
delay(2000);
}
}
{
if (digitalRead(7) == LOW) { //Jeśli przycisk jest wciśnięty
digitalWrite(3, HIGH); //Włączenie opuszczania
} else { //Jeśli przycisk nie jest wciśnięty
digitalWrite(3, LOW); //Wyłączenie opuszczania
delay(2000);
}
}
}
Program nie jest skończony gdyż dopiero sie go uczę.
A teraz jakie otrzymałem wyniki.
Wszystko podłączyłem na próbę przy użyciu równolegle diody aby widzieć czy program reaguje czy nie.
Gdy włączę podnoszenie to przełącznik (relay) od podnoszenia się załacza - widać to również na płytce silnika. Ale bieżnia się nie podnosi.
Dioda kontrolna zaswieca sie i po chwili gaśnie, ale dioda na sterowniku silnika zaswieca się ale już nie gaśnie.
Gdy mostkuje Vref z podnoszeniem rowniez przekaznik się odblokowuje i podnoszenie działa.
W przypadku uruchomienia opuszczania sytuacja wyglada identycznie. Arduino ze swoją diodą zaświeca się i gaśnie a sterownik silnika zaświeca się i już nie gaśnie.
Gdy robię mostek miedzy Vref i PWM silnik natychmiast startuje. Gdy podłączam arduino do PWM słychać tylko pisk z sterownika silnika i po za tym nic się nie dzieje.
No i po tej długiej wypowiedzi czas na pytania
Co powinno zostać podłączone pod konkretne piny, aby móc wykorzystać bieżnię z tym sterownikiem?
Dlaczego przekaznik sterownika nie wyłącza się razem z sygnałem z Arduino?
Czy pisk z sterownika silnika może wynikać z zbyt małej mocy Arduino czy jest to bardziej wina zbyt małego wypałnienia sygnału PWM?
Próbuję uruchomić bieżnie z uszkodzonym układem sterującym.
Jak dotąd utworzyłem taki program:
int predkosc = 0;
int zmiana = 2;
void setup() {
pinMode(2,OUTPUT); // W góre
pinMode(3,OUTPUT); // W dół
pinMode(4,INPUT_PULLUP); // Start/Stop
pinMode(5,OUTPUT); // Sterowanie prędkościa silnika PWM
pinMode(6,INPUT_PULLUP); // Przycisk w gore
pinMode(7,INPUT_PULLUP); // Przycisk w dol
pinMode(8,INPUT_PULLUP); // Przycisk Przyspiesz
pinMode(9,INPUT_PULLUP); // Przycisk Zwolnij
pinMode(10,OUTPUT); //Brzeczek
digitalWrite(10, HIGH); // Brak zasilania odlacza bieżnie
digitalWrite(2,LOW); // Podnoszenie wylaczone
digitalWrite(3,LOW); // Opuszczanie wylaczone
digitalWrite(5,LOW); // Silnik wylaczony
}
void loop() {
{
if (digitalRead(4) == LOW) { //Jeśli przycisk jest wciśnięty
digitalWrite(5, HIGH); //Włączenie silnika
} else { //Jeśli przycisk nie jest wciśnięty
digitalWrite(5, LOW); //Wyłączenie silnika
}
while (digitalRead(4) == LOW) {
for (int i = 0; i <= 255; i++) {
analogWrite(5, i); //Spokojne rozpędzanie silnika
delay(25);
}
//Zatrzymujemy się w pustej pętli do ponownego zamknięcia okna
delay(25); //W pętli wprowadzamy małe opóźnienie 25ms, aby niwelować zakłócenia
}
}
{
if (digitalRead(6) == LOW) { //Jeśli przycisk jest wciśnięty
digitalWrite(2, HIGH); //Włączenie podnoszenia
} else { //Jeśli przycisk nie jest wciśnięty
digitalWrite(2, LOW); //Wyłączenie podnoszenia
delay(2000);
}
}
{
if (digitalRead(7) == LOW) { //Jeśli przycisk jest wciśnięty
digitalWrite(3, HIGH); //Włączenie opuszczania
} else { //Jeśli przycisk nie jest wciśnięty
digitalWrite(3, LOW); //Wyłączenie opuszczania
delay(2000);
}
}
}
Program nie jest skończony gdyż dopiero sie go uczę.
A teraz jakie otrzymałem wyniki.
Wszystko podłączyłem na próbę przy użyciu równolegle diody aby widzieć czy program reaguje czy nie.
Gdy włączę podnoszenie to przełącznik (relay) od podnoszenia się załacza - widać to również na płytce silnika. Ale bieżnia się nie podnosi.
Dioda kontrolna zaswieca sie i po chwili gaśnie, ale dioda na sterowniku silnika zaswieca się ale już nie gaśnie.
Gdy mostkuje Vref z podnoszeniem rowniez przekaznik się odblokowuje i podnoszenie działa.
W przypadku uruchomienia opuszczania sytuacja wyglada identycznie. Arduino ze swoją diodą zaświeca się i gaśnie a sterownik silnika zaświeca się i już nie gaśnie.
Gdy robię mostek miedzy Vref i PWM silnik natychmiast startuje. Gdy podłączam arduino do PWM słychać tylko pisk z sterownika silnika i po za tym nic się nie dzieje.
No i po tej długiej wypowiedzi czas na pytania
Co powinno zostać podłączone pod konkretne piny, aby móc wykorzystać bieżnię z tym sterownikiem?
Dlaczego przekaznik sterownika nie wyłącza się razem z sygnałem z Arduino?
Czy pisk z sterownika silnika może wynikać z zbyt małej mocy Arduino czy jest to bardziej wina zbyt małego wypałnienia sygnału PWM?