Skocz do zawartości

pietrasek

Użytkownicy
  • Zawartość

    21
  • Rejestracja

  • Ostatnio

Reputacja

2 Neutralna

O pietrasek

  • Ranga
    2/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

87 wyświetleń profilu
  1. takie pytanie czy ktoś wie co może być problemem braku odczytu obrotów?
  2. 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ć
  3. pietrasek

    Sterowanie silnikiem z Arduino

    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.
  4. pietrasek

    Sterowanie silnikiem z Arduino

    oczywiście że mam nie zauważyłem znaczącej różnicy
  5. pietrasek

    RetroBot

    Bieżesz brystol i naklejasz na niego czarną izolację najlepiej matową. Coś takiego trochę pofalowane bo było zwinięte.
  6. pietrasek

    Sterowanie silnikiem z Arduino

    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; } }
  7. pietrasek

    Sterowanie silnikiem z Arduino

    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
  8. pietrasek

    Sterowanie silnikiem z Arduino

    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
  9. pietrasek

    Sterowanie silnikiem z Arduino

    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); ^
  10. pietrasek

    Sterowanie silnikiem z Arduino

    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 } ^
  11. pietrasek

    Sterowanie silnikiem z Arduino

    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);
  12. pietrasek

    Sterowanie silnikiem z Arduino

    Chyba zrozumiałem i nawet działa int LED1A = 52; int LED1B = 50; int LED1C = 48; int LED2A = 46; int LED2B = 44; int LED2C = 42; int LED3A = 40; int LED3B = 38; int LED3C = 36; int SW1A = 13; int SW1B = 12; int SW2A = 11; int SW2B = 10; int SW3A = 9; int SW3B = 8; void setup() { pinMode(LED1A, OUTPUT); pinMode(LED1B, OUTPUT); pinMode(LED1C, OUTPUT); pinMode(SW1A, INPUT_PULLUP); pinMode(SW1B, 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); } }
  13. pietrasek

    Sterowanie silnikiem z Arduino

    int M1A = 52; //SILNIKI int M1B = 50; int PWM1 = 48; //PWM int M2A = 46; int M2B = 44; int PWM2 = 42; int M3A = 40; int M3B = 38; int PWM3 = 36; int SW1A = 13; //PRZEŁĄCZNIKI int SW1B = 12; int SW2A = 11; int SW2B = 10; int SW3A = 9; int SW3B = 8; void setup() { pinMode(M1A, OUTPUT); pinMode(M1B, OUTPUT); pinMode(SW1A, INPUT_PULLUP); pinMode(SW1B, INPUT_PULLUP); } void loop() { if (digitalRead(SW1A) == LOW) { digitalWrite(M1A, HIGH); digitalWrite(M1B, LOW); } else { if (digitalRead(SW1B) == LOW){ digitalWrite(M1A, LOW); digitalWrite(M1B, HIGH); } else{ digitalWrite(M1A, LOW); digitalWrite(M1B, LOW); } } if (digitalRead(SW2A) == LOW) { digitalWrite(M2A, HIGH); digitalWrite(M2B, LOW); } else { if (digitalRead(SW2B) == LOW){ digitalWrite(M2A, LOW); digitalWrite(M2B, HIGH); } else{ digitalWrite(M2A, LOW); digitalWrite(M2B, LOW); } } if (digitalRead(SW3A) == LOW) { digitalWrite(M3A, HIGH); digitalWrite(M3B, LOW); } else { if (digitalRead(SW3B) == LOW){ digitalWrite(M3A, LOW); digitalWrite(M3B, HIGH); } else{ digitalWrite(M3A, LOW); digitalWrite(M3B, LOW); } } } Minimalnie zmieniając powstał program do silników ( jeszcze bez sterowania prędkością)
  14. pietrasek

    Wątek zbiorczy: powitania użytkowników

    Witam jestem Piotrek mam 14 lat i jestem w 8 klasie. Interesuję się modelarstwem kolejowym, modelarstwem RC, robotyką, elektroniką i techniką. dołączyłem do forum ponieważ jeszcze słabo sobie radzę w c++ i nie mam nikogo kto mógłby mi pomóc się nauczyć mam zamiar zrobić sterowanie do makiety kolejowej na arduno. niedługo będę wybierał liceum lub technikum i zastanawiam się nad kierunkiem mechatronicznym mój ostatni projekt: led cube 8x8x8 aktualnie pracuję nad : line follover makieta kolejowa robot na arduino czasami mogę mieć bardzo dziwny tok myślenia
  15. pietrasek

    Sterowanie silnikiem z Arduino

    tak nazwałem może to nie być zrozumiałe dla wszystkich la-Led A lb-Led B sa Switch A faktycznie dopisać prawa lewa itd. by było łatwiej odczytywać. to postaram się zmienić. bardzo możliwe u mnie takie błędy ponieważ pierwszym językiem programowania jaki zaczynałem się uczyć był python. powiem szczerze że o tym nie wiedziałem i cały czas podłączałem katodą do masy używam Arduino Mega dokładniej klona. Niestety wyszedł mi piramidalny if ponieważ niestety nie wiem jak tego użyć i nie jestem pewien jak to działa szukałem w internecie i nie znalazłem. najłatwiej mi do głowy przychodzi ale nie wiem czy działa w c++ SWA + SWB*2 Jeżeli 0 środkowy led 0 + 0 *2 = 0 1 prawy led 1 + 0 *2 = 1 2 lewy led 0 + 1 *2 = 2 na wyjsciach 1 lub 0 int LED1A = 52; int LED1B = 50; int LED1C = 48; int LED2A = 46; int LED2B = 44; int LED2C = 42; int LED3A = 40; int LED3B = 38; int LED3C = 36; int SW1A = 13; int SW1B = 12; int SW2A = 11; int SW2B = 10; int SW3A = 9; int SW3B = 8; const int LED_ON = 1 const int LED_OFF=0 void setup() { pinMode(LED1A, OUTPUT); pinMode(LED1B, OUTPUT); pinMode(LED1C, OUTPUT); pinMode(SW1A, INPUT_PULLUP); pinMode(SW1B, INPUT_PULLUP); digitalWrite(LED1A, LOW); digitalWrite(LED1B, LOW); digitalWrite(LED1C, LOW); } void loop() { if (digitalRead(SW1A) == LOW) { digitalWrite(LED1A, HIGH); digitalWrite(LED1B, LOW); digitalWrite(LED1C, LOW); } else { if (digitalRead(SW1B) == LOW){ digitalWrite(LED1A, LOW); digitalWrite(LED1B, LOW); digitalWrite(LED1C, HIGH); } else{ digitalWrite(LED1A, LOW); digitalWrite(LED1B, HIGH); digitalWrite(LED1C, LOW); } } if (digitalRead(SW2A) == LOW) { digitalWrite(LED2A, HIGH); digitalWrite(LED2B, LOW); digitalWrite(LED2C, LOW); } else { if (digitalRead(SW2B) == LOW){ digitalWrite(LED2A, LOW); digitalWrite(LED2B, LOW); digitalWrite(LED2C, HIGH); } else{ digitalWrite(LED2A, LOW); digitalWrite(LED2B, HIGH); digitalWrite(LED2C, LOW); } } if (digitalRead(SW3A) == LOW) { digitalWrite(LED3A, HIGH); digitalWrite(LED3B, LOW); digitalWrite(LED3C, LOW); } else { if (digitalRead(SW3B) == LOW){ digitalWrite(LED3A, LOW); digitalWrite(LED3B, LOW); digitalWrite(LED1C, HIGH); } else{ digitalWrite(LED3A, LOW); digitalWrite(LED3B, HIGH); digitalWrite(LED3C, LOW); } } } nie wiem czy dobrze zrozumiałem. wiem że moja logika myślenia jest dosyć dziwna
×