Skocz do zawartości

pietrasek

Użytkownicy
  • Zawartość

    25
  • Rejestracja

  • Ostatnio

Reputacja

3 Neutralna

O pietrasek

  • Ranga
    3/10
  • Urodziny 03.02.2004

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Mazowsze
  • Języki programowania
    c++
  • Zainteresowania
    technika, elektronika, modelarstwo, robotyka
  • Zawód
    uczeń

Ostatnio na profilu byli

286 wyświetleń profilu
  1. Witam chciałem zbudować kroczącego robota na arduino i pojawił się problem wyczuwaniem podłoża przez nogę robota czy da się zrobić to poprzez pomiar prądu pobieranego przez serwo? Jeżeli da się to proszę o podpowiedź jak to zrobić i ewentualnie czego użyć.
  2. ok Wielkie Dzięki niektórych błędów bym się nie doszukał
  3. jeszcze takie pytanie jak zrobić aby w c i d wychodziła liczba całkowita?
  4. int srv0min = 100; int srv0max = 150; int SERVOMAX = 500; int SERVOMIN = 180; float c ; float d ; int a1; int b1; void setup() { Serial.begin(9600); } void loop() { int c = ( srv0min / 180 ) * ( SERVOMAX - SERVOMIN ) + SERVOMIN ; // 0,55 * 320 + 180 = 356 int d = ( srv0max / 180 ) * ( SERVOMAX - SERVOMIN ) + SERVOMAX ; Serial.println(c); Serial.println(d); delay(10000); } witam chciałem zapytać i prosić o pomoc w związku z obliczeniami na zmiennych. wiem że to głupie pytanie ale dlaczego w zmiennych c i d zapisuje się wartość 180 zamiast 356 w c i zamiast 448 w d prawdopodobnie zrobiłem gdzieś głupi błąd którego nie jestem w stanie znaleźć. z góry dziękuję za pomoc.
  5. takie pytanie czy ktoś wie co może być problemem braku odczytu obrotów?
  6. witam kupiłem Geekcreit® DIY Biaxial Spherical Rotating LED Kit z banggood i mam problem z pomiarem obrotów i przez to urządzenie nie chce działać wydaje mi się że problem powstaje w układzie zasilającym ale niestety nie mogę dojść do tego co konkretnie szwankuje Chińczyk wysłał instrukcję naprawiania błędów punkt 4: ④. Użyj multimetru, aby sprawdzić napięcie modułu mocy, czy wynosi ono około 4V. Jeśli nie, sprawdź moduł mocy zgodnie z instrukcją. u mnie bez obciążenia jest 12 a z 1 w czym może być problem ja nie wiem . chyba że to problem z odbiornikiem : cały schemat Proszę o pomoc przejrzałem chyba wszystkie luty i ustawienia elementów . i nie wiem co dalej robić jeszcze takie pytanie co oznacza symbol na obrazku w czerwonym prostokącie? Dziękuję za wszelką pomoc. LED debug instruction V1.0.pdf Schematic diagram.pdf dopiero zaczynam z elektroniką więc mogę jeszcze nie wszystko zrozumieć
  7. mam coś takiego. const int m1A = 38; const int m1B = 40; const int pwm1 = 2; const int m2A = 42; const int m2B = 44; const int pwm2 = 3; const int m3A = 46; const int m3B = 48; const int pwm3 = 4; const int SW1A = 6; const int SW1B = 7; const int SW2A = 11; const int SW2B = 10; const int SW3A = 9; const int SW3B = 8; const int ang1 = 0; const int ang2 = 1; const int ang3 = 2; int stan_switcha1; int stan_switcha2; int stan_switcha3; int pr1; int pr2; int pr3; int pw1; int pw2; int pw3; void setup() { pinMode(m1A, OUTPUT); //Dioda jako wyjście pinMode(m1B, OUTPUT); //Dioda jako wyjście pinMode(pwm1, OUTPUT); //Dioda jako wyjście pinMode(m2A, OUTPUT); //Dioda jako wyjście pinMode(m2B, OUTPUT); //Dioda jako wyjście pinMode(pwm2, OUTPUT); //Dioda jako wyjście pinMode(m3A, OUTPUT); //Dioda jako wyjście pinMode(m3B, OUTPUT); //Dioda jako wyjście pinMode(pwm3, OUTPUT); //Dioda jako wyjście pinMode(SW1A, INPUT_PULLUP); //Przycisk jako wejście pinMode(SW1B, INPUT_PULLUP); pinMode(SW2A, INPUT_PULLUP); //Przycisk jako wejście pinMode(SW2B, INPUT_PULLUP); pinMode(SW3A, INPUT_PULLUP); //Przycisk jako wejście pinMode(SW3B, INPUT_PULLUP); Serial.begin(9600); } void loop() { pr1 = map(analogRead(ang1), 0, 1023, 0, 100); pr2 = map(analogRead(ang2), 0, 1023, 0, 100); pr3 = map(analogRead(ang3), 0, 1023, 0, 100); pw1 = spw(pr1, pw1); pw2 = spw(pr2, pw2); pw3 = spw(pr3, pw3); stan_switcha1 = wczytaj_switch(SW1A , SW1B); stan_switcha2 = wczytaj_switch(SW2A , SW2B); stan_switcha3 = wczytaj_switch(SW3A , SW3B); ledy( stan_switcha1, m1A , m1B , pwm1, pw1 ); ledy( stan_switcha2, m2A , m2B , pwm2, pw2 ); ledy( stan_switcha3, m3A , m3B , pwm3, pw3 ); delay (50); } int wczytaj_switch(int S1, int S2){ if (digitalRead(S1) == LOW) { return 1; } else { if (digitalRead(S2) == LOW) { return 3; } else{ return 2; } } } void ledy(int sygnal, int M1, int M2, int Mpwm, int pot){ switch(sygnal) { case 1: digitalWrite(M1, HIGH); digitalWrite(M2, LOW); analogWrite(Mpwm, map(pot, 0, 100, 0, 255)); break; case 2: digitalWrite(M1, LOW); digitalWrite(M2, LOW); analogWrite(Mpwm, 0); break; case 3: digitalWrite(M1, LOW); digitalWrite(M2, HIGH); analogWrite(Mpwm, map(pot, 0, 100, 0, 255)); break; default: digitalWrite(M1, LOW); digitalWrite(M2, LOW); analogWrite(Mpwm, 0); break; } } int spw(int op, int pd){ if (op == pd ) { return pd; } else { if (op < pd) { return pd-1; } if (op > pd ) { return pd+1; } } } przepraszam że tak długo ale niestety nie miałem czasu przez ten tydzień działać działa sprawdzałem.
  8. oczywiście że mam nie zauważyłem znaczącej różnicy
  9. Bieżesz brystol i naklejasz na niego czarną izolację najlepiej matową. Coś takiego trochę pofalowane bo było zwinięte.
  10. akurat na razie do lokomotyw. wiem o DCC (myślę o tym na przyszłość). aktualnie buduję makietę w analogu i wymyśliłem sobie że zrobię cały pulpit sterowniczy niestety chińskie regulatory napięcia się popaliły. w poszukiwaniu regulatorów natknąłem się na sterownik silników do arduino i postanowiłem zbudować na arduino. oczywiście tory są od siebie odizolowane pilota mam kody do przycisków też mam #include <IRremote.h> #define irPin 11 IRrecv irrecv(irPin); decode_results results; int jasnosc = 0; void setup() { Serial.begin(9600); irrecv.enableIRIn(); } void loop() { if (irrecv.decode(&results)) { switch (results.value) { case 0xE318261B: Serial.println("CHM"); break; case 0x511DBB: Serial.println("CH") break; case 0xEE886D7F: Serial.println("CHP"); break; case 0x52A3D41F: Serial.println("PREV"); break; case 0xD7E84B1B: Serial.println("NEXT"); break; case 0x20FE4DBB: Serial.println("PP"); break; case 0xF076C13B: Serial.println("VOLM"); break; case 0xA3C8EDDB: Serial.println("VOLP"); break; case 0xE5CFBD7F: Serial.println("EQ"); break; case 0xFF6897: Serial.println("0"); break; case 0x97483BFB: Serial.println("100"); break; case 0xF0C41643: Serial.println("200"); break; case 0x9716BE3F: Serial.println("1"); break; case 0x3D9AE3F7: Serial.println("2"); break; case 0x6182021B: Serial.println("3"); break; case 0x8C22657B: Serial.println("4"); break; case 0x488F3CBB: Serial.println("5"); break; case 0x449E79F: Serial.println("6"); break; case 0x32C6FDF7: Serial.println("7"); break; case 0x1BC0157B: Serial.println("8"); break; case 0x3EC3FC1B: Serial.println("9"); break; } irrecv.resume(); } } zapomniałem jeszcze że zdecydowałem się na arduino bo brakowało mi spowolnienia w ruszaniu i zatrzymywaniu. sterowanie silnikami const int m1A = 38; const int m1B = 40; const int pwm1 = 0; const int m2A = 42; const int m2B = 44; const int pwm2 = 1; const int m3A = 46; const int m3B = 48; const int pwm3 = 2; const int SW1A = 13; const int SW1B = 12; const int SW2A = 11; const int SW2B = 10; const int SW3A = 9; const int SW3B = 8; const int ang1 = 0; const int ang2 = 1; const int ang3 = 2; int stan_switcha1; int stan_switcha2; int stan_switcha3; int po1; int po2; int po3; void setup() { pinMode(m1A, OUTPUT); //Dioda jako wyjście pinMode(m1B, OUTPUT); //Dioda jako wyjście pinMode(pwm1, OUTPUT); //Dioda jako wyjście pinMode(m2A, OUTPUT); //Dioda jako wyjście pinMode(m2B, OUTPUT); //Dioda jako wyjście pinMode(pwm2, OUTPUT); //Dioda jako wyjście pinMode(m3A, OUTPUT); //Dioda jako wyjście pinMode(m3B, OUTPUT); //Dioda jako wyjście pinMode(pwm3, OUTPUT); //Dioda jako wyjście pinMode(SW1A, INPUT_PULLUP); //Przycisk jako wejście pinMode(SW1B, INPUT_PULLUP); pinMode(SW2A, INPUT_PULLUP); //Przycisk jako wejście pinMode(SW2B, INPUT_PULLUP); pinMode(SW3A, INPUT_PULLUP); //Przycisk jako wejście pinMode(SW3B, INPUT_PULLUP); } void loop() { po1 = analogRead(ang1); po2 = analogRead(ang2); po3 = analogRead(ang3); stan_switcha1 = wczytaj_switch(SW1A , SW1B); stan_switcha2 = wczytaj_switch(SW2A , SW2B); stan_switcha3 = wczytaj_switch(SW3A , SW3B); ledy( stan_switcha1, m1A , m1B , pwm1, po1 ); ledy( stan_switcha2, m2A , m2B , pwm2, po2 ); ledy( stan_switcha3, m3A , m3B , pwm3, po3 ); } int wczytaj_switch(int S1, int S2){ if (digitalRead(S1) == LOW) { return 1; } else { if (digitalRead(S2) == LOW) { return 2; } else{ return 3; } } } void ledy(int sygnal, int M1, int M2, int Mpwm, int pot){ switch(sygnal) { case 1: digitalWrite(M1, HIGH); digitalWrite(M2, LOW); analogWrite(Mpwm, map(pot, 0, 1023, 0, 255)); break; case 2: digitalWrite(M1, LOW); digitalWrite(M2, LOW); analogWrite(Mpwm, 0); break; case 3: digitalWrite(M1, LOW); digitalWrite(M2, HIGH); analogWrite(Mpwm, map(pot, 0, 1023, 0, 255)); break; default: digitalWrite(M1, LOW); digitalWrite(M2, LOW); analogWrite(Mpwm, 0); break; } }
  11. Bardzo jestem wdzięczny za pomoc. Program jest dużo bardziej przejrzysty , zauważyłem że trochę mniej pamięci zajmuje Tak ogólnie to buduję makietę kolejową i są 3 sekcje torów . Mają być 3 potencjometry po 1 do każdej sekcji w pozycji środkowej przełącznika ma przejść na sterowanie za pomocą pilota
  12. const int LED1A = 52; const int LED1B = 50; const int LED1C = 48; const int LED2A = 46; const int LED2B = 44; const int LED2C = 42; const int LED3A = 40; const int LED3B = 38; const int LED3C = 36; const int SW1A = 13; const int SW1B = 12; const int SW2A = 11; const int SW2B = 10; const int SW3A = 9; const int SW3B = 8; int stan_switcha1; int stan_switcha2; int stan_switcha3; void setup() { pinMode(LED1A, OUTPUT); //Dioda jako wyjście pinMode(LED1B, OUTPUT); //Dioda jako wyjście pinMode(LED1C, OUTPUT); //Dioda jako wyjście pinMode(LED2A, OUTPUT); //Dioda jako wyjście pinMode(LED2B, OUTPUT); //Dioda jako wyjście pinMode(LED2C, OUTPUT); //Dioda jako wyjście pinMode(LED3A, OUTPUT); //Dioda jako wyjście pinMode(LED3B, OUTPUT); //Dioda jako wyjście pinMode(LED3C, OUTPUT); //Dioda jako wyjście pinMode(SW1A, INPUT_PULLUP); //Przycisk jako wejście pinMode(SW1B, INPUT_PULLUP); pinMode(SW2A, INPUT_PULLUP); //Przycisk jako wejście pinMode(SW2B, INPUT_PULLUP); pinMode(SW3A, INPUT_PULLUP); //Przycisk jako wejście pinMode(SW3B, INPUT_PULLUP); digitalWrite(LED1A, LOW); digitalWrite(LED1B, LOW); digitalWrite(LED1C, LOW); } void loop() { stan_switcha1 = wczytaj_switch(SW1A , SW1B); stan_switcha2 = wczytaj_switch(SW2A , SW2B); stan_switcha3 = wczytaj_switch(SW3A , SW3B); ledy( stan_switcha1, LED1A , LED1B , LED1C ); ledy( stan_switcha2, LED2A , LED2B , LED2C ); ledy( stan_switcha3, LED3A , LED3B , LED3C ); } int wczytaj_switch(int S1, int S2){ // void na int if (digitalRead(S1) == LOW) { return 1; // zmienna na return } else { if (digitalRead(S2) == LOW) { return 2; } else{ return 3; } } } void ledy(int sygnal, int L1, int L2, int L3){ switch(sygnal) { case 1: digitalWrite(L1, HIGH); digitalWrite(L2, LOW); digitalWrite(L3, LOW); break; case 2: digitalWrite(L1, LOW); digitalWrite(L2, LOW); digitalWrite(L3, HIGH); break; case 3: digitalWrite(L1, LOW); digitalWrite(L2, HIGH); digitalWrite(L3, LOW); break; default: digitalWrite(L1, LOW); digitalWrite(L2, LOW); digitalWrite(L3, LOW); break; } } działa. wydaje mi się że można nazwać to wersją 2.0 czytałem
  13. const int LED1A = 52; const int LED1B = 50; const int LED1C = 48; const int LED2A = 46; const int LED2B = 44; const int LED2C = 42; const int LED3A = 40; const int LED3B = 38; const int LED3C = 36; const int SW1A = 13; const int SW1B = 12; const int SW2A = 11; const int SW2B = 10; const int SW3A = 9; const int SW3B = 8; int sygnal; int stan_switcha1; int stan_switcha2; int stan_switcha3; void setup() { pinMode(LED1A, OUTPUT); //Dioda jako wyjście pinMode(LED1B, OUTPUT); //Dioda jako wyjście pinMode(LED1C, OUTPUT); //Dioda jako wyjście pinMode(LED2A, OUTPUT); //Dioda jako wyjście pinMode(LED2B, OUTPUT); //Dioda jako wyjście pinMode(LED2C, OUTPUT); //Dioda jako wyjście pinMode(LED3A, OUTPUT); //Dioda jako wyjście pinMode(LED3B, OUTPUT); //Dioda jako wyjście pinMode(LED3C, OUTPUT); //Dioda jako wyjście pinMode(SW1A, INPUT_PULLUP); //Przycisk jako wejście pinMode(SW1B, INPUT_PULLUP); pinMode(SW2A, INPUT_PULLUP); //Przycisk jako wejście pinMode(SW2B, INPUT_PULLUP); pinMode(SW3A, INPUT_PULLUP); //Przycisk jako wejście pinMode(SW3B, INPUT_PULLUP); digitalWrite(LED1A, LOW); digitalWrite(LED1B, LOW); digitalWrite(LED1C, LOW); } void loop() { stan_switcha1 = wczytaj_switch(SW1A , SW1B); stan_switcha2 = wczytaj_switch(SW2A , SW2B); stan_switcha3 = wczytaj_switch(SW3A , SW3B); ledy( stan_switcha1, LED1A , LED1B , LED1C ); ledy( stan_switcha2, LED2A , LED2B , LED2C ); ledy( stan_switcha3, LED3A , LED3B , LED3C ); } void wczytaj_switch(int S1, int S2){ if (digitalRead(S1) == LOW) { sygnal = 1; } else { if (digitalRead(S2) == LOW) { sygnal = 2; } else{ sygnal = 3; } } } void ledy(int sygnal, int L1, int L2, int L3){ switch(sygnal) { case 1: digitalWrite(L1, HIGH); digitalWrite(L2, LOW); digitalWrite(L3, LOW); break; case 2: digitalWrite(L1, LOW); digitalWrite(L2, LOW); digitalWrite(L3, HIGH); break; case 3: digitalWrite(L1, LOW); digitalWrite(L2, HIGH); digitalWrite(L3, LOW); break; default: digitalWrite(L1, LOW); digitalWrite(L2, LOW); digitalWrite(L3, LOW); break; } } wersja prawie następna tylko że znowu mam problem (za każdym razem jak mam problem najpierw staram się znaleźć odp. w internecie) przycisk:43: error: void value not ignored as it ought to be stan_switcha1 = wczytaj_switch(SW1A , SW1B); ^ przycisk:44: error: void value not ignored as it ought to be stan_switcha2 = wczytaj_switch(SW2A , SW2B); ^ przycisk:45: error: void value not ignored as it ought to be stan_switcha3 = wczytaj_switch(SW3A , SW3B); ^
  14. const int LED1A = 52; const int LED1B = 50; const int LED1C = 48; const int LED2A = 46; const int LED2B = 44; const int LED2C = 42; const int LED3A = 40; const int LED3B = 38; const int LED3C = 36; const int SW1A = 13; const int SW1B = 12; const int SW2A = 11; const int SW2B = 10; const int SW3A = 9; const int SW3B = 8; int sygnal; void setup() { pinMode(LED1A, OUTPUT); pinMode(LED1B, OUTPUT); pinMode(LED1C, OUTPUT); pinMode(LED2A, OUTPUT); pinMode(LED2B, OUTPUT); pinMode(LED2C, OUTPUT); pinMode(LED3A, OUTPUT); pinMode(LED3B, OUTPUT); pinMode(LED3C, OUTPUT); pinMode(SW1A, INPUT_PULLUP); pinMode(SW1B, INPUT_PULLUP); pinMode(SW2A, INPUT_PULLUP); pinMode(SW2B, INPUT_PULLUP); pinMode(SW3A, INPUT_PULLUP); pinMode(SW3B, INPUT_PULLUP); digitalWrite(LED1A, LOW); digitalWrite(LED1B, LOW); digitalWrite(LED1C, LOW); } void loop() { wyjs(SW1A , SW1B); ledy( LED1A , LED1B , LED1C ); wyjs( SW2A , SW2B ); ledy( LED2A , LED2B , LED2C ); wyjs( SW3A , SW3B ); ledy( LED3A , LED3B , LED3C ); } void wyjs(int S1, int S2){ if (digitalRead(S1) == LOW) { sygnal = 1; } else { if (digitalRead(S2) == LOW) { sygnal = 2; } else{ sygnal = 3; } } void ledy(int L1, int L2, int L3){ if (sygnal = 1) { digitalWrite(L1, HIGH); digitalWrite(L2, LOW); digitalWrite(L3, LOW); } if (sygnal = 2) { digitalWrite(L1, LOW); digitalWrite(L2, LOW); digitalWrite(L3, HIGH); } if (sygnal = 3) { digitalWrite(L1, LOW); digitalWrite(L2, HIGH); digitalWrite(L3, LOW); } } } podzieliłem końcówkę na 2 części 1 odpowiada za odczytanie stanu przełącznika a 2 za zapalenie diody. ale pojawiły się takie błędy. Niestety nie wiem skąd się wzięły In function 'void loop()': przycisk:41: error: 'ledy' was not declared in this scope ledy( LED1A , LED1B , LED1C ); ^ In function 'void wyjs(int, int)': przycisk:60: error: a function-definition is not allowed here before '{' token void ledy(int L1, int L2, int L3){ ^ przycisk:76: error: expected '}' at end of input } ^
  15. po zmianie na #define pojawił się błąd error: expected primary-expression before '=' token tylko nie wiem co zrobiłem źle. #define LED1A = 52; #define LED1B = 50; #define LED1C = 48; #define LED2A = 46; #define LED2B = 44; #define LED2C = 42; #define LED3A = 40; #define LED3B = 38; #define LED3C = 36; #define SW1A = 13; #define SW1B = 12; #define SW2A = 11; #define SW2B = 10; #define SW3A = 9; #define SW3B = 8; void setup() { pinMode(LED1A, OUTPUT); //Dioda jako wyjście pinMode(LED1B, OUTPUT); //Dioda jako wyjście pinMode(LED1C, OUTPUT); //Dioda jako wyjście pinMode(LED2A, OUTPUT); //Dioda jako wyjście pinMode(LED2B, OUTPUT); //Dioda jako wyjście pinMode(LED2C, OUTPUT); //Dioda jako wyjście pinMode(LED3A, OUTPUT); //Dioda jako wyjście pinMode(LED3B, OUTPUT); //Dioda jako wyjście pinMode(LED3C, OUTPUT); //Dioda jako wyjście pinMode(SW1A, INPUT_PULLUP); //Przycisk jako wejście pinMode(SW1B, INPUT_PULLUP); pinMode(SW2A, INPUT_PULLUP); //Przycisk jako wejście pinMode(SW2B, INPUT_PULLUP); pinMode(SW3A, INPUT_PULLUP); //Przycisk jako wejście pinMode(SW3B, INPUT_PULLUP); digitalWrite(LED1A, LOW); digitalWrite(LED1B, LOW); digitalWrite(LED1C, LOW); } void loop(){ ledy( LED1A , LED1B , LED1C , SW1A , SW1B ); ledy( LED2A , LED2B , LED2C , SW2A , SW2B ); ledy( LED3A , LED3B , LED3C , SW3A , SW3B ); } void ledy(int L1, int L2, int L3, int S1, int S2){ if (digitalRead(S1) == LOW) { digitalWrite(L1, HIGH); digitalWrite(L2, LOW); digitalWrite(L3, LOW); } else if (digitalRead(S2) == LOW){ digitalWrite(L1, LOW); digitalWrite(L2, LOW); digitalWrite(L3, HIGH); } else{ digitalWrite(L1, LOW); digitalWrite(L2, HIGH); digitalWrite(L3, LOW);
×
×
  • Utwórz nowe...