Skocz do zawartości

Lolheadshootpl

Użytkownicy
  • Zawartość

    68
  • Rejestracja

  • Ostatnio

Wszystko napisane przez Lolheadshootpl

  1. Witam mam pewien problem z układem. Optotriak ma być podłączony do arduino( narazie po prostu podaje napięcie 5V zewnętrznie) i ma sterować mosfetem który będze załączał cewki. Problem w tym że na próbę zrobiłem z diodą i nie działa do końca tak jak chce. Bez napięcia na diodzie optotriaka układ jest wyłączony, kiedy podaje napięcie wszystko ładnie działa, lecz gdy napięcie odłączę to dioda cały czas świeci. Gdy odepnę zasilanie 10V dioda gaśnie i gdy znowu je podłączę a na diodzie optotriaka nie ma zasilania układ jest wyłączony ( czyli ok). Pozdrawiam.
  2. Dobra panowie okazało się że nie działa pin 10 w arduino i zmieniłem na 9 i wszystko śmiga taka pierdoła a może cały dzień zmarnować. Dziękuje za zaangażowanie .
  3. Tak wiem ale edytowałem to w kodzie tutaj bo w Arduino IDE napisałem && a tu przez przypadek stary kod dałem.
  4. Zamieniłem te ify i dalej to samo a warunki są na pewno dobrze spełnione bo zamieniając w kodzie numery przekaźników tak samo działa tylko ta część : if((DP == LOW) && (DK == HIGH)) { digitalWrite(przekaznik1 , LOW); digitalWrite(przekaznik2 , LOW); } else { digitalWrite(przekaznik1 , HIGH); digitalWrite(przekaznik2 , HIGH); a ta nie działa : if((RP == LOW) && (RK == HIGH)) { digitalWrite(przekaznik3 , LOW); digitalWrite(przekaznik4 , LOW); } else { digitalWrite(przekaznik3 , HIGH); digitalWrite(przekaznik4 , HIG
  5. Fakt mogłem troszkę bardziej go opisać. Więc tak cały system ma sterować kierunkiem obrotu silnika DC. Do przełączania mają służyć dwa przyciski opisane kolejno w kodzie D i R ( N narazie pomijam bo to nie jest ważne). Silnik sterujemy pewnym wałem który przesuwa ośką do przodu i do tyłu i do ograniczenia ruchu służą dwie krańcówki koniecD i koniecR ( koniec N narazie pomijam). Arduino podpięte jest pod cztery przekaźniki i po naciśnięciu przycisku D mają się załączyć dwa pierwsze a gdy wałek dotknie krańcówki to ma się wyłączyć, a drugi przycisk steruje analogicznie drugim zestawem przekaźnik
  6. Witam. Napisałem dość prosty kod (tak mi się wydawało przynajmniej), lecz po jego wgraniu i odpaleniu tylko część działa a druga część nie ma ochoty nawet ruszyć. Kod steruje pracą czterech przekaźników w zależności od wciśniętego przycisku RP i DP oraz krańcówek RK i DK. Problem w tym że przekaźniki działają tylko w połowie po przepięciu ich na gniazda tych co działają zaczynają działać. int przekaznik1 = 0; int przekaznik2 = 1; int przekaznik3 = 2; int przekaznik4 = 3; int D = 5; int N = 6; int R = 7; int koniecD = 8; int koniecN = 9; int koniecR = 10; int DP; int DK; int RP; int
  7. To znaczy kiedy zaczynam ruszać innym to na samym początku ustawia się na 90 a potem działa i tak z każdym następnym serwem. Pierwsze "dotknięcie" przycisku powoduje ruch serwa na 90 i po tym ruchu już się normalnie steruje. Czy co dodać więcej zmiennych pos?
  8. A tak przepraszam zapomniałem o tym pos. A ten "delay" jak zrobić ?
  9. Ok czyli robie coś takiego i ma być git? : ( serwo myservo5 obraca się w drugą stronę dlatego jest 130 a nie 50, działa on równo z myservo4 ( podnoszą w jednym punkcie ramię bo jedno serwo nie dało rady )). #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> #include <Servo.h> int pos = 90; int pos1 = 90; int delayPeriod = 50; int dirPin = 12; int stepPin = 13; uint32_t last = 0; RF24 radio(7, 8); // CE, CSN const byte address[6] = "00001"; byte odbior; Servo myservo; Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; Servo myservo5; void setu
  10. Nie o ogólną prędkość bo tą mam git tylko prędkośC tego ustawiania po włączeniu zasilania, bo ustawia się z pełną prędkością.
  11. Okej a wiesz może czy da się spowolnić ten proces ustawiania serwa. Bo dzisiaj podłączyłem i wystrzeliło jak z armaty
  12. Czyli dodani czegoś takiego może pomóc? : myservo.write(50);
  13. @matural A wiesz może co można wykombinować zamiast tego pos = 90?
  14. Jeszcze jeden problem wyszedł podczas głównego testowania ramienia. A wygląda on tak... Załóżmy że przycisk 1 i 2 są podłączone do serwa A a przycisk 3 i 4 do serwa B. Kiedy pierwszy raz po uruchomieniu nacisnę jakikolwiek przycisk to serwo do którego jest podłączony przycisk najpierw się centruje i dopiero potem reaguje. Sytuacja występuje także kiedy próbuje po tym jak nacisnąłem przycisk 1 czy 2 nacisnąć przycisk 3 lub 4 i serwo B najpierw się centruje a potem działa normalnie. Ktoś wie jak ominąć ten etap centrowania? Chodzi o to że nie dałem delaya w nadajniku czy to nie ma nic do te
  15. Tylko że z serwami sytuacja ogarnięta i wszystko działa chodzi mi tylko o ten silnik krokowy.
  16. ethank... Nie uważam Cię za "starego dziada" tylko naprawde mi pomogłeś i wiem że powinno być tak ale zrozum ja się uczę i eksperymentuje. Jestem tego zdania że jak coś jest głupie ale działa to nie jest głupie. farmaceuta Co to tego pinu EN to nie wiem co na niego mam dać.
  17. Tak cały nadajnik odbiornik działa bo sterowanie serwomechanizmem na tych pinach działa ( oczywiście inny kod na serwo a inny na silniki krokowe, teraz wywaliłem serwomechanizm i zrobiłem to na silnik krokowy). #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> #include <Servo.h> int pos = 90; int pos1 = 90; int delayPeriod = 50; int dirPin = 12; int stepPin = 13; RF24 radio(7, 8); // CE, CSN const byte address[6] = "00001"; byte odbior; Servo myservo; Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; Servo myservo5; void setup() { Serial
  18. Kurczę myślałem że coś w kodzie pokićkałem bo mi nie działa ale jak widze to powinno działać. Ciekawe.
  19. Jeszcze ostatnie pytanie. Czy do sterowania silnikiem krokowym taki kod jest poprawny? int dirPin = 12; int stepPin = 13; if (odbior == 5) { digitalWrite(dirPin , HIGH); digitalWrite(stepPin,HIGH); delayMicroseconds(500); digitalWrite(stepPin,LOW); delayMicroseconds(500); } if (odbior == 6) { digitalWrite(dirPin , LOW); digitalWrite(stepPin,HIGH); delayMicroseconds(500); digitalWrite(stepPin,LOW); delayMicroseconds(500); }
  20. Wydawało mi się że po prostu if (odebrana = 1); Ale nie działa. ps. Jakbym wiedział to bym nie pisał , dopiero się uczę.
  21. I teraz żeby dodać do tego kodu serwomechanizm to co muszę dać po if? void loop() { if (radio.available()) { byte odbior; radio.read(&odbior, 1); { if (?????????); if( pos > 0) --pos; myservo.write(pos);
×
×
  • 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.