Skocz do zawartości

jas123

Użytkownicy
  • Zawartość

    117
  • Rejestracja

  • Ostatnio

Wszystko napisane przez jas123

  1. W tym wypadku wystarczy 5V (pobierany prąd nie jest duży),jeśli chcesz podłączyć do Vin to warto zastosować stabilizator napięcia .
  2. Podłącz baterię do Arduino, a miernik między wyjścia Vin i GND. Przy zasilaniu wyświetlacza napięcie może spaść o parę woltów .
  3. Zmierz napięcie baterii multimetrem , prawdopodobnie spadło poniżej 7V. PS. Można wiedzieć jakiego czujnika użyłaś do pomiaru ciśnienia? Z góry dziękuję za odpowiedź.
  4. Miałem podobny problem w myszce za 10 zł. Raz klikała kilkukrotnie a raz w ogóle. Problem rozwiązałem w połowie przelutowując przycisk z prawego na lewy(lewy zaczął działać poprawnie ale prawy już nie).
  5. Może i zadziała, ale najbezpieczniej będzie jeśli dodasz jakąś przetwornice step down lub stabilizator . W najgorszym przypadku spalisz serwo.
  6. Jak dobrze zmontuje to raczej wystarczy zwykłe MG996 za 20zł. Chyba że to ma być jakiś pojazd towarowy.
  7. Możesz zamontować serw tak aby pojazd łamał się w połowie i przy okazji skręcał w czasie jazdy.Np tak:
  8. Witam, z okazji sytuacji w Polsce i na Świecie związanej z koro... sami wiecie z czym, postanowiłem w końcu zrobić coś zamiast robić nic. Może nie jest to jakiś bardzo ambitny projekt ale jednak nauczyłem się paru nowych rzeczy. Najpierw przedstawię co to : Jest to poduszkowiec bez poduszki nie wiedziałem jak to nazwać więc wymyśliłem nazwę Slidejunk. Nazwa jest z języka angielskiego i oznacza ślizgający się(slide) śmieć(junk). Ślizgający się ponieważ się ślizga , śmieć ponieważ zrobiłem go z kartonu i rzeczy które miałem w domu . Spis rzeczy użytych do samego pojazdu: Silnik BLDC bezszczotkowy A2212/10T 1400KV. Sterownik silnika BLDC 30A. Pakiet Li-Pol 11.1v 3S 20C 2200mAh Servo SG90 Karton Na początku chciałem zbudować samolot ale zniechęciłem się po tym jak położyłem baterię na wagę . Bateria waży 135 g , nie chciałem ryzykować . Budowa samolotu to wyższy poziom . A ja mam tylko karton i ciężką baterię. Kiedyś kupie sobie specjalnego styropianu i coś z tym pokombinuję. Odbiornik - ma 7 kanałów , mózgiem jest arduino nano, sygnał jest odczytywany przez nrf24. Nadajnik - na razie ma 5 kanałów i więcej nie potrzebuję mózgiem znowu jest arduino nano a sygnał jest wysyłany przez nrf24 (ten z anteną).Zasilanie to 2 baterie 18560.W sumie używam 3 kanały : sterowanie silnikiem BLDC, sterowanie serwem, precyzyjne sterowanie serwem (potencjometr). Na górze widać spalone oczka na płytce, jestem amatorem w lutowaniu więc musiało się coś nie udać.Po zlutowaniu wszystkiego nadajnik nie działał , zdenerwowałem się i nie ładnie wylutowałem nrf-a. Wlutowałem go jeszcze raz i potem już działało. Nie udane pomysły Chciałem całość zamknąć w 2 kanałach ale, nie ma idealnego ustawienia domyślnego dla serwa dlatego musiałem dodać trzeci kanał . Był też pomysł na informowanie o stanie naładowania baterii po przez buzzer na nadajniku .Buzzer miał "pikać"gdy napięcie spada poniżej 11V. Nie udało się . Okazało się że nadawanie sygnału i odbieranie go jednocześnie przez pilota do pojazdu RC nie jest najlepszym pomysłem w tym przypadku. Ustawienia sterowania Joystickiem po lewej steruję silnik BLDC . Joystickiem z prawej serwem. Z okazji że te joysticki nie są z najwyższej półki, musiałem ustawić maksymalną moc silnika na 50% (po minimalnym przesunięciu silnik osiągał około 30% mocy a to sporo jak na ten pojazd). A maksymalny skręt serwa 30 stopni w każdą stronę . Podsumowanie Podczas projekt uważam za udany da się ślizgać. Planuję kiedyś kupić lepsze joysticki. Nie mam trzech rąk więc przy nagrywaniu trzymałem telefon w kolanach mam nadzieję że taki film wystarczy. Pozdrawiam czytelników .
  9. Jesli chodzi o tą nakładkę to : Możesz uciąć ten kawałek płytki , tam nie ma żadnych ścieżek . Jeśli jednak uda Ci się przeciąć jakąś ścieżkę to będzie to sygnał do serwa. Wystarczy zgiąć końcówkę przewodu albo zlutuj sobie płytkę z dwóch pinów męskich i żeńskich jeśli nie chcesz zginać przewodów.
  10. "||" oznacza tyle co lub/albo if (brightness <= 0 || brightness >= 255){ //jeśli jasność jest mniejsza lub równa 0 ALBO jasność jest większa lub równa 255 to:
  11. Z tego co widzę w Air:bit też jest bateria Li-Po.
  12. Trochę mi się myli te ustawianie nawiasów , szkoda że program nie uznaje takich pomyłek jako błąd.Teraz program działa poprawnie. Jeszcze raz dziękuje nie wpadłbym na to .
  13. Dzisiaj próbowałem nauczyć się sterować kilkoma funkcjami jednym przyciskiem za pomocą "switch case" i coś mi nie wyszło. Z założenia program po wciśnięciu przycisku miał zapalać diodę, gasić ją po 2 sekundach .Po kolejnym przyciśnięciu przycisku zapalać następną diodę , gasić po 2 sekundach i tak dalej... Zamiast tego diody same zapalają się i gasną po kolei . Z góry dziękuje za odpowiedzi. szkic programu: #define przycisk 6 #define led1 7 #define led2 8 #define led3 9 #define led4 10 byte x = 0; void setup (){ digitalWrite(led1,LOW); digitalWrite(led2,LOW); digitalWrite(led3,LOW); digitalWrite(led4,LOW); pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode(led3,OUTPUT); pinMode(led4,OUTPUT); pinMode(przycisk,INPUT_PULLUP); } void loop(){ if(digitalRead(przycisk == LOW)){ switch(x){ case 0: digitalWrite(led1,HIGH); delay(2000); digitalWrite(led1,LOW); x=1; break; case 1: digitalWrite(led2,HIGH); delay(2000); digitalWrite(led2,LOW); x=2; break; case 2: digitalWrite(led3,HIGH); delay(2000); digitalWrite(led3,LOW); x=3; break; case 3: digitalWrite(led4,HIGH); delay(2000); digitalWrite(led4,LOW); x=0; break; } }else{ digitalWrite(led1,LOW); digitalWrite(led2,LOW); digitalWrite(led3,LOW); digitalWrite(led4,LOW); } }
  14. @krif38 chyba nie napisałeś tej linijki : #define kontaktron 6
  15. Kombinowałem nad tym parę minut i wpadłem na coś takiego: #define kontaktron 6 //definiujemy kontaktron i skręty #define lewo 7 #define prawo 8 boolean x = 0; //dodajemy zmienną void setup (){ pinMode(lewo,OUTPUT);//ustawiamy skręty jako wyjścia pinMode(prawo,OUTPUT); pinMode(kontaktron,INPUT_PULLUP);//INPUT - ustawiamy kontaktron jako wejście, PULLUP - dodajemy rezystor podciągający } void loop(){ if(digitalRead(kontaktron) == LOW && x == 0 ){ //jeśli kontaktron jest połączony z masą (poprzez najechanie kolejki) to: digitalWrite(prawo,HIGH); //prawo delay(4000); //czekamy 4s digitalWrite(prawo,LOW);//prosto x=x+1;//zmieniamy wartość x } if(digitalRead(kontaktron) == LOW && x == 1 ){ //jeśli kontaktron jest połączony z masą (poprzez najechanie kolejki) to: digitalWrite(lewo,HIGH); //lewo delay(4000); //czekamy 4s digitalWrite(lewo,LOW);//prosto x=x-1;//zmieniamy wartość x } } Kod działa( wypróbowałem na diodach) pod warunkiem że kontaktron nie jest zwarty dłużej niż 4 sekundy. To jest kod do skręcania na przemian w prawo lub lewo po najechaniu kolejki na kontaktron.Jeśli kod jest źle napisany to proszę mnie poprawić. Jeśli nie o to Ci chodziło to opisz dokładniej jak to ma działać.
  16. @Vicktor moja płytka działa tak samo jak twoja więc może tak ma być.
  17. Zasięg nie będzie mniejszy ale wolniejsza będzie wymiana danych.
  18. Zamiast int liczba = random(1,6); napisz int liczba = random(1,7); digitalWrite (KR, HIGH); delay(500); digitalWrite (KR, LOW); delay(500); digitalWrite (KR, HIGH); Może po prostu program w tym czasie wykonuje ten odcinek . Wiem że to nie jest praktyczny sposób ale możesz przy każdym losowaniu poruszać antenką.
  19. Jeśli nie widzisz czy się świeci "gołym okiem " to dobrze ,bo podczerwień jest niewidoczna dla ludzi .Nakieruj aparat na diode , powinieneś zobaczyć jasno fioletowe światło. Jeśli nie widać to znaczy że się nie świeci.
  20. Teraz już wiem mniej więcej , i gdy usunąłem część z guzikiem na którym się zatrzymywał program to zaczęło działać . Dzięki za odpowiedzi.
  21. wpisałem w 7 miejscach i zatrzymuje się na 6 //transmiter #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> #define led 5 RF24 radio(7, 8); // CE, CSN const byte addresses[][6] = {"qscvb", "qwert"}; boolean buttonState = 0; void setup() { Serial.begin(9600); pinMode(5, OUTPUT); Serial.println("1"); radio.begin(); radio.openWritingPipe(addresses[1]); Serial.println("2"); radio.openReadingPipe(1, addresses[0]); radio.setPALevel(RF24_PA_MIN); Serial.println("3"); } void loop() { delay(5); Serial.println("4"); radio.stopListening(); int potValue = analogRead(A0); int angleValue = map(potValue, 0, 1023, 0, 180); radio.write(&angleValue, sizeof(angleValue)); delay(5); Serial.println("5"); radio.startListening(); Serial.println("6"); while (!radio.available()); radio.read(&buttonState, sizeof(buttonState)); Serial.println("7"); if (buttonState == HIGH) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } } może dlatego że nie wcisnąłem microswitcha którego nawet nie podłączyłem
  22. Dzień dobry wgrałem sobie przykład z internetu , który ma za zadanie poruszać servem na jednym arduino za pomocą joysticka na drugim arduino(jest jeszcze dioda i przycisk ale tego nie podłączałem). Całość działa , ale problem w tym że po kilku sekundach nagle przestaje działać jedyne co pomaga to reset transmitera . Jaka może być tego przyczyna ? kody: //transmiter #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> #define led 5 RF24 radio(7, 8); // CE, CSN const byte addresses[][6] = {"qscvb", "qwert"}; boolean buttonState = 0; void setup() { pinMode(5, OUTPUT); radio.begin(); radio.openWritingPipe(addresses[1]); radio.openReadingPipe(1, addresses[0]); radio.setPALevel(RF24_PA_MIN); } void loop() { delay(5); radio.stopListening(); int potValue = analogRead(A0); int angleValue = map(potValue, 0, 1023, 0, 180); radio.write(&angleValue, sizeof(angleValue)); delay(5); radio.startListening(); while (!radio.available()); radio.read(&buttonState, sizeof(buttonState)); if (buttonState == HIGH) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } } //recriver #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> #include <Servo.h> #define button 4 RF24 radio(7, 8); // CE, CSN const byte addresses[][6] = {"qscvb", "qwert"}; Servo myServo; boolean buttonState = 0; void setup() { pinMode(button, INPUT); myServo.attach(5); radio.begin(); radio.openWritingPipe(addresses[0]); radio.openReadingPipe(1, addresses[1]); radio.setPALevel(RF24_PA_MIN); } void loop() { delay(5); radio.startListening(); if ( radio.available()) { while (radio.available()) { int angleV = 0; radio.read(&angleV, sizeof(angleV)); myServo.write(angleV); } delay(5); radio.stopListening(); buttonState = digitalRead(button); radio.write(&buttonState, sizeof(buttonState)); } }
×
×
  • Utwórz nowe...