Skocz do zawartości

Neeeds

Użytkownicy
  • Zawartość

    12
  • Rejestracja

  • Ostatnio

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

Osiągnięcia użytkownika Neeeds

Odkrywca

Odkrywca (4/19)

  • Za 5 postów
  • To już rok!
  • To już 5 lat!
  • Młodszy Juror

Odznaki

0

Reputacja

  1. Ciekawe.. Czyli w takim razie możemy mieć tyle pinów PWM w arduino ile jest wyjść. Zapewne istnieje biblioteka, która jest do tego przeznaczona (tą Servo.h pewnie też da sie do tego wykorzystać). Jeszcze jedno pytanie, czemu w Arduino występują osobne piny PWM, a raczej czym się różnią od pozostałych. W czym mogą być lepsze?
  2. Witam, mam mały dylemat a bardziej chciałbym się dowiedzieć jak to działa. Mianowicie, serwomechanizmy podłączamy do pinów cyfrowych arduino generujących PWM. Podłączyłem sygnał serwo do innych zwykłych pinów a nawet analogowego a serwo działa poprawnie jak na PWM. Jak to możliwe?
  3. Neeeds

    Spowolniony program

    Zgodze się w zupełności, że mogłem napisać np S1,S2, nie sądziłem że UART może na to jakoś wpłynąć. Nie jestem specjalistą więc tak na szybko chciałem napisać tylko poglądowy programik by zobaczyć co się kiedy wysyła. Ale jednego w Twojej wypowiedzi nie rozumiem. Chcę aby diody paliły się tak długo jak trzymam przycisk więc musze je wyłączać chyba że masz coś innego na myśli.
  4. Witam, zauważyłem w swoim arduino jeden problem, który nie wiem jak rozwiązać. Napisałem prosty programik w którym jeden warunek ma sie wykonywać bez przerwy(if(val >400 && val <600)). Dołożyłem dwa przyciski, które po wciśnięciu zapalają diodę 1 lub 2. Z tego co zauważyłem (na serial porcie) to gdy wciskam jeden przycisk to wykonuje się warunek i jedna dioda świeci, gdy dwa wcisne to obie świecą, ale już nie tak jasno jak powinny świecić. Zapewne to dlatego, że skoro wykonują sie 3 warunki naraz to ogólna pętla zwalnia 3 krotnie bo musi wykonać 3 if'y po kolei. I tu moje pytanie, czy da się zrobić tak by świeciły maksymalnie jak powinny? Później mam zamiar podłączyć tam silniki więc nie moge mieć takich opóźnień. Załączam poglądowy kod: int val; void setup() { Serial.begin(9600); pinMode(2, OUTPUT); digitalWrite(2, HIGH); pinMode(7,OUTPUT); digitalWrite(7, HIGH); pinMode(4, OUTPUT); pinMode(5, OUTPUT); } void loop() { val = (analogRead(A1)); if(val >400 && val <600) { Serial.println(1); Serial.println(2); Serial.println(3); } if(val >600) { Serial.println(4); Serial.println(5); Serial.println(6); delay(500); } if(val <400) { Serial.println(7); Serial.println(8); Serial.println(9); delay(500); } if(digitalRead(2) == LOW) { Serial.println(10); Serial.println(11); Serial.println(12); digitalWrite(4, HIGH); } else { Serial.println(100000); digitalWrite(4, LOW); } if(digitalRead(7) == LOW) { Serial.println(13); Serial.println(14); Serial.println(15); digitalWrite(5, HIGH); } else { Serial.println(9999999); digitalWrite(5, LOW); } } Chciałbym aby warunek po wciśnięciu przycisku się wykonywał tak długo jak jest on wciśnięty.
  5. Faktycznie, tyle razy zmieniałem coś, że przez pomyłkę je usunąłem, teraz program działa, dzięki za pomoc 🙂
  6. Niestety to nic nie zmienia, wydaje mi się, że coś nie tak jest z warunkami w odbiorniku ale nie wiem co.
  7. O którą prędkość chodzi dokładnie? i jak najlepiej to zwolnić?
  8. Nie wydaje mi się by cokolwiek było tu źle. #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> #define CE_PIN 9 #define CSN_PIN 10 #define JOYSTICK_X A0 #define JOYSTICK_Y A1 const uint64_t pipe = 0xE8E8F0F0E1LL; RF24 radio(CE_PIN, CSN_PIN); int joystick[2]; void setup() { radio.begin(); radio.setDataRate(RF24_250KBPS); radio.openWritingPipe(pipe); }//--(end setup )- void loop() { joystick[0] = analogRead(JOYSTICK_X); joystick[1] = analogRead(JOYSTICK_Y); radio.write( joystick, sizeof(joystick) ); }
  9. Witam, posiadam program podany poniżej i mam z nim pewien problem. Włączam monitor portu szeregowego i pokazuje 0 - tak powinno byc, potem wychylam joystick w kazda strone i te wartosci takze są poprawne, ale gdy juz wroce do ,,środka'' joysticka to nie wysyła 0 tylko wartości 0 wymieszane z jakąś inna liczbą z przedziału kiedy wychyliłem joystick. Nie wiem czemu tak jest, jakby poprzedni warunek sie zawiesił i sie dalej wykonuje. Nie wiem jak zrobic by w środku działał tylko warunek by wysyłało 0 a inne warunki przestały. Chciałbym by ktoś poprawił mój program i nieco wyjaśnił czemu nie działa poprawnie. #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> #define CE_PIN 9 #define CSN_PIN 10 const uint64_t pipe = 0xE8E8F0F0E1LL; RF24 radio(CE_PIN, CSN_PIN); int joystick[2]; int Throttle ; int Steering; int speeed; void setup() { Serial.begin(250000); delay(1000); Serial.println("Nrf24L01 Receiver Starting"); radio.begin(); radio.setDataRate(RF24_250KBPS); radio.openReadingPipe(1, pipe); radio.startListening(); }//--(end setup )- void loop() { if ( radio.available() ) { radio.read( joystick, sizeof(joystick) ); Throttle = map(joystick[0], 0, 1023, 0, 100); Steering = map(joystick[1], 0, 1023, 101, 200); if(Throttle > -1 && Throttle < 45) { speeed = map(Throttle, 0, 45, 255, 50); right(speeed); } if(Throttle > 55 && Throttle < 100) speeed = map(Throttle, 99, 55, 255, 50); left(speeed); if(Steering > 101 && Steering < 145) { speeed = map(Steering, 101, 145, 255, 50); gora(speeed); } if(Steering > 155 && Steering < 200) { speeed = map(Steering, 200, 155, 255, 50); dol(speeed); } if((Throttle > 45 && Throttle < 55) && (Steering > 145 && Steering < 155)) { stopp(); } } } void right(int speeed) { Serial.println(speeed); } void left(int speeed) { Serial.println(speeed); } void stopp() { Serial.println(0); } void gora(int speeed) { Serial.println(speeed); } void dol(int speeed) { Serial.println(speeed); }
  10. Sprawdziłem link, podłączyłem wszystko tak jak jest opisane i nie działa. Nadajnik wysyła wartości z Joysticka i na porcie szeregowym wyświetla status 1E oraz pokazuje wartości z potencjometrów. Natomiast odbiornik pokazuje status 0 i nic sie nie dzieje. Chciałbym by ktoś sprawdził działanie tego programu, jakich bibliotek użył. Bardzo potrzebuje tego programu.
  11. Witam, bardzo potrzebuje kodu do pojazdu złożonego z 2 silników sterowany joystickiem. Chciałbym by była płynna regulacja a najlepiej przedstawia to wideo: Jest to dokładnie to czego potrzebuję. Prosze o jakiegoś gotowca jak ktoś ma lub o wskazówki jak to napisać bo na prawdę nie mam pojęcia jak to zostało rozwiązane.
  12. Witam, mam problem z układem łączącym 2 arduina modułami nRF24L01. Mam prosty program sterujący zapalaniem i zgaszaniem diody lecz działa następująco: program jest wgrany w obu arduinach, dioda powinna byc zgaszona ale mruga nierownomiernie, gdy wcisne przycisk to dioda stabilnie sie zapala i swieci gdy trzymam przycisk. Port szeregowy pokazuje że odbiornik otrzymuje informacje (111) po 10 ileś razy pod rząd i około tyle samo (No radio available). Gdy odepne kabelek od przycisku (odstrony Arduino) to normalnie nie wysyła ale gdy odepne od strony przycisku to znowu dioda miga, ten kabelek działa jak antena zbierająca sygnał ale nie mam pojęcia jak to możliwe. Przykład wziąłem stąd: https://forum.arduino.cc/index.php?topic=138663.0
×
×
  • 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.