Skocz do zawartości

mistus

Użytkownicy
  • Zawartość

    23
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    1

mistus zajął 1. miejsce w rankingu.
Data osiągnięcia: 20 lutego 2018.

Treści użytkownika mistus zdobyły tego dnia najwięcej polubień!

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    OPOLE
  • Zawód
    Elektronik
  • Moje zainteresowania:
    Robotyka

Osiągnięcia użytkownika mistus

Starszy odkrywca

Starszy odkrywca (5/19)

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

Odznaki

3

Reputacja

  1. jak wyłączę funkcje pilota to wszystko fajnie hula ze sobą jedynie jeśli wpisze do funkcji pilota by uruchamiał czujnik to nie robi problemów a poza funkcja pilota nie rusza może i problem są faktycznie opóźnienia będę próbował zrobić bez(odkryłem też że serwomechanizm nie działa z pilotem) na razie znalazłem inne rozwiązanie skorzystałem z innej biblioteki na podczerwień i wszystko hula
  2. Mam problem kiedy chce połączyć czujnik odległości HC - SR04 z pilotem to pilot przestaje reagować nie wiem już co jest powodem ;( co prawda nie wiem jak napisana jest ta biblioteka od pilota prosił bym o jakość podpowiedz 🙂 #define odebraniePilota 3 #define wyslanieSygnalu A4 #define odebranieSygnalu 8 #define LewaWykryta A2 #define PrawaWykryta A3 #define LewaPWM 5 #define LewaKierunek 4 #define PrawaPWM 6 #define PrawaKierunek 9 #define PWM_MAX 150 #define glosnik 10 #define WykrywaczPrawy A0 #define WykrywaczLewy A1 #define RoznicaMin 100 #define RoznicaMax -100 int odczytLewy = 0; int odczytPrawy = 0; int roznica = 0; byte zmianaStanup = 1; int predkosc = 800; #include <RC5.h> RC5 rc5(odebraniePilota); byte adres; byte dane; byte zmianaStanu; int odczyt = 1; void setup() { Serial.begin(9600); pinMode(LewaKierunek, OUTPUT); pinMode(PrawaKierunek, OUTPUT); pinMode(LewaPWM, OUTPUT); pinMode(PrawaPWM, OUTPUT); pinMode(LewaWykryta, INPUT_PULLUP); pinMode(PrawaWykryta, INPUT_PULLUP); pinMode(glosnik, OUTPUT); digitalWrite(glosnik, 0); randomSeed(analogRead(5)); pinMode(wyslanieSygnalu, OUTPUT); pinMode(odebranieSygnalu, INPUT); } void pilot(){ if(rc5.read(&zmianaStanu, &adres, &dane)){ switch(dane){ case 12: if(zmianaStanu == 1){ odczyt = 0; LewySilnik(0); PrawySilnik(0); } if(zmianaStanu == 0){ stopSilnik(); odczyt = 1; } break; case 144: LewySilnik(40); PrawySilnik(40); break; case 150: LewySilnik(-40); PrawySilnik(40); break; case 149: LewySilnik(40); PrawySilnik(-40); break; case 145: LewySilnik(-40); PrawySilnik(-40); break; } } } void tyl(int a,int b){ int los = random(a, b)*10; if(digitalRead(LewaWykryta) == LOW){ LewySilnik(40); PrawySilnik(40); digitalWrite(glosnik, 1); delay(1500); LewySilnik(40); PrawySilnik(-40); digitalWrite(glosnik, 0); delay(140+los); } if(digitalRead(PrawaWykryta) == LOW){ LewySilnik(40); PrawySilnik(40); digitalWrite(glosnik, 1); delay(1500); LewySilnik(-40); PrawySilnik(40); digitalWrite(glosnik, 0); delay(140+los); } } void Swietlik(){ if(odczyt == 0){ int odczytLewy = analogRead(WykrywaczLewy); int odczytPrawy = analogRead(WykrywaczPrawy); int roznica = 0; if((odczytLewy < 500)||(odczytPrawy < 500)){ if(odczytLewy < 500){ roznica = RoznicaMin; } else if(odczytPrawy < 500){ roznica = RoznicaMax; } int zmianaPredkosci = map(roznica,RoznicaMin,RoznicaMax,-30,30); LewySilnik(30+zmianaPredkosci); PrawySilnik(30-zmianaPredkosci); delay(500);} else{ LewySilnik(40); PrawySilnik(40); } } } int zmieszOdleglosc(){ long czas, dystans; digitalWrite(wyslanieSygnalu, LOW); delayMicroseconds(2); digitalWrite(wyslanieSygnalu, HIGH); delayMicroseconds(10); digitalWrite(wyslanieSygnalu, LOW); czas = pulseIn(odebranieSygnalu, HIGH); dystans = czas / 58; return dystans; } void zakres(int a, int b){ int jakDaleko = zmieszOdleglosc(); if((jakDaleko > a)&&(jakDaleko < b)){ int losSkretu = random(1,3); if(losSkretu == 1){ LewySilnik(40); PrawySilnik(-40); delay(500); } else if(losSkretu == 2){ PrawySilnik(40); LewySilnik(-40); delay(500); } } } void LewySilnik(int V){ if(V > 0){ V = map(V,0,100,0,PWM_MAX); digitalWrite(LewaKierunek, 1); analogWrite(LewaPWM, V); } else{ V = abs(V); V = map(V,0,100,0,PWM_MAX); digitalWrite(LewaKierunek, 0); analogWrite(LewaPWM, V); } } void PrawySilnik(int V){ if(V > 0){ V = map(V,0,100,0,PWM_MAX); digitalWrite(PrawaKierunek, 0); analogWrite(PrawaPWM, V); } else{ V = abs(V); V = map(V,0,100,0,PWM_MAX); digitalWrite(PrawaKierunek, 1); analogWrite(PrawaPWM, V); } } void stopSilnik(){ analogWrite(LewaPWM, 0); analogWrite(PrawaPWM, 0); } void loop() { tyl(5,20); pilot(); Swietlik(); zakres(3,25); //<-- problem z reakcja pilota ;/ }
  3. Moja linijka LED działa tak pokazał bym filmik ale kamera nie radzi sobie z światłem LED #include <Adafruit_NeoPixel.h>// inicjalizujemy bibliotekę Adafruit_NeoPixel LED = Adafruit_NeoPixel(8, A0, NEO_GRB + NEO_KHZ800);//dane paska LED int i = 0; int a = 0; int b = 0; int c = 0; int los = 0; int d = 100; void setup() { LED.begin();// połączenie z paskiem LED LED.show();// uruchomienie działania paska randomSeed(analogRead(A5)); //ustawiam pin dla losowania } int losowosc(){ int wybór = random(1,4); return wybór;// zwracamy wylosowana liczbę } void Kolor(){// wybieramy kolor los = losowosc(); switch(los){ case 1: a = 255; break; case 2: b = 255; break; case 3: c = 255; break; } } void Minuskolor(){// wybieramy ujemny kolor los = losowosc(); switch(los){ case 1: a = 1; break; case 2: b = 1; break; case 3: c = 1; break; } } void wGore(){// pasek led idzie do gory Kolor(); for(i = -1; i < 8; i++){ LED.setPixelColor(i, LED.Color(a,b,c)); LED.show(); delay(150); } a = 0; b = 0; c = 0; } void wDol(){// pasek led idzie w dol Kolor(); for(i = 8; i > -1; i--){ LED.setPixelColor(i, LED.Color(a,b,c)); LED.show(); delay(150); } a = 0; b = 0; c = 0; } void PulsacjaWdol(){// zanikanie led Kolor(); while( a > 0){ for (i = -1; i < 8; i ++){ LED.setPixelColor(i ,LED.Color(a,b,c)); } LED.show(); delay(150); a = a - 20; LED.clear(); } while( b > 0){ for (i = -1; i < 8; i ++){ LED.setPixelColor(i ,LED.Color(a,b,c)); } LED.show(); delay(150); b = b - 20; LED.clear(); } while( c > 0){ for (i = -1; i < 8; i ++){ LED.setPixelColor(i ,LED.Color(a,b,c)); } LED.show(); delay(150); c = c - 20; LED.clear(); } a = 0; b = 0; c = 0; } void PulsacjaWgore(){// pojawianie sie led a = 0; b = 0; c = 0; Minuskolor(); while( d > 0){ while((a < 254)&&(a > 0)){ for (i = -1; i < 8; i ++){ LED.setPixelColor(i ,LED.Color(a,b,c)); } LED.show(); delay(150); a = a + 20; d = d - 10; LED.clear(); } while(( b < 254)&&(b > 0)){ for (i = -1; i < 8; i ++){ LED.setPixelColor(i ,LED.Color(a,b,c)); } LED.show(); delay(150); b = b + 20; d = d - 10; LED.clear(); } while(( c < 254)&&(c > 0)){ for (i = -1; i < 8; i ++){ LED.setPixelColor(i ,LED.Color(a,b,c)); } LED.show(); delay(150); c = c + 20; d = d - 10; LED.clear(); } } a = 0; b = 0; c = 0; d = 100; } void wGore2color(){// pasek LED dodaje się i idzie w gore Kolor(); for(i = -1; i < 8; i++){ LED.setPixelColor(i, LED.Color(a,b,c)); LED.show(); delay(150); } } void wDol2color(){// pasek LED dodaje się i idzie w dol Kolor(); for(i = 8; i > -1; i--){ LED.setPixelColor(i, LED.Color(a,b,c)); LED.show(); delay(150); } } void MieszankaWgore(){// kolorowość paska LED i idzie do góry LED.setPixelColor(0, LED.Color(255,b,c)); LED.show(); delay(150); Kolor(); LED.setPixelColor(1, LED.Color(0,0,255)); LED.show(); delay(150); Kolor(); LED.setPixelColor(2, LED.Color(255,b,0)); LED.show(); delay(150); Kolor(); LED.setPixelColor(3, LED.Color(a,255,c)); LED.show(); delay(150); Kolor(); LED.setPixelColor(4, LED.Color(a,0,255)); LED.show(); delay(150); Kolor(); LED.setPixelColor(5, LED.Color(0,255,0)); LED.show(); delay(150); Kolor(); LED.setPixelColor(6, LED.Color(a,0,c)); LED.show(); delay(150); Kolor(); LED.setPixelColor(7, LED.Color(255,0,0)); LED.show(); delay(500); a = 0; b = 0; c = 0; } void MieszankaWdol(){// kolorowość paska LED i idzie w dol LED.setPixelColor(7, LED.Color(255,b,c)); LED.show(); delay(150); Kolor(); LED.setPixelColor(6, LED.Color(0,0,255)); LED.show(); delay(150); Kolor(); LED.setPixelColor(5, LED.Color(255,b,0)); LED.show(); delay(150); Kolor(); LED.setPixelColor(4, LED.Color(a,255,c)); LED.show(); delay(150); Kolor(); LED.setPixelColor(3, LED.Color(a,0,255)); LED.show(); delay(150); Kolor(); LED.setPixelColor(2, LED.Color(0,255,0)); LED.show(); delay(150); Kolor(); LED.setPixelColor(1, LED.Color(a,0,c)); LED.show(); delay(150); Kolor(); LED.setPixelColor(0, LED.Color(255,0,0)); LED.show(); delay(500); a = 0; b = 0; c = 0; } void Opcje(){// wybiera co ma wykonać z paskiem LED int wybór = random(1,9); switch(wybór){ case 1: wGore(); break; case 2: wDol(); break; case 3: PulsacjaWdol(); break; case 4: PulsacjaWgore(); break; case 5: wGore2color(); break; case 6: wDol2color(); break; case 7: MieszankaWgore(); break; case 8: MieszankaWdol(); break; } } void loop() { uint32_t kolor = 0;// nadanie koloru 32 bitów losowosc(); Opcje(); }
  4. zadanie 10.4 void setup() { Serial.begin(9600); randomSeed(analogRead(A0)); Serial.println("Losowanie liczb od 0 do 100"); } int losowanie(){ int los; los = random(101); delay(1000); return los; } void loop() { losowanie(); int los = losowanie(); if((los < 10)||(los > 90)){ Serial.println("opcja 1"); Serial.println(los); } if((los > 50)&&(los < 70)||(los > 85)){ Serial.println("opcja 2"); Serial.println(los); } if ((los == 50)||(los == 40)||(los == 30)||(los == 20)){ Serial.println("opcja 3"); Serial.println(los); } if ((los > 10)&&(los < 40)||(los > 60)&&(los < 100)){ Serial.println("opcja 4"); Serial.println(los); } } i Koniec zaczynam lekcję 2 😉
  5. Aha ok dzieki za odpowiedz Ale nie bede czekał do marca trzeba się dalej szkolić 🙂
  6. zadanie 10.1 jest błąd w przykładzie jest ("") a powinno być ("\n") chyba że specjalnie 😉 #define fotorezystor1 A5 #define fotorezystor2 A4 float napiecie1 = 0; float napiecie2 = 0; void setup() { Serial.begin(9600); } void loop() { napiecie1 = analogRead(fotorezystor1); napiecie2 = analogRead(fotorezystor2); napiecie1 = napiecie1 *(5.0/1023.0); napiecie2 = napiecie2 *(5.0/1023.0); Serial.print(napiecie1); Serial.print("\t"); Serial.print(napiecie2); Serial.print("\t"); Serial.print("\n"); delay(500); } a tak działa (machając rekom) a tak świecąc latarką zadanie 10.2 Bedzie w kółko te same liczby pokazywać zadanie 10.3 Troszkę unowocześnione #define pomarancz 13// nadaje różnym pina nazwy #define Pomarancz 12 #define zielony 11 #define zolty 10 #define Zolty 9 #define czerwony 8 #define Czerwony 7 #define przycisk 6 #define buzer 5 int losowy = 0; int los = 0; int czas = 0; void setup() { Serial.begin(9600);// połączenie z komputerem Serial.println("Wciśnij przycisk by wylosować liczbę"); randomSeed(analogRead(A0));// ziarno (punkt 1 losowania) pinMode(pomarancz, OUTPUT);// ustawiam wejścia wyjścia pinów pinMode(Pomarancz, OUTPUT); pinMode(zielony, OUTPUT); pinMode(zolty, OUTPUT); pinMode(Zolty, OUTPUT); pinMode(czerwony, OUTPUT); pinMode(Czerwony, OUTPUT); pinMode(przycisk, INPUT_PULLUP); pinMode(buzer, OUTPUT); } int losujemy(){ int losowy; losowy = random(1,7);// losuje od 1 - 6 delay (500); return losowy;// podaje wynik } void zadanie(){ Serial.println("Wylosowana liczba"); Serial.println(los); Serial.println("kolej następnego gracza"); Serial.println("Wciśnij przycisk by wylosować liczbę"); } void wyświetlenie(){ while(czas < 500){ delay(czas); digitalWrite(pomarancz, LOW); digitalWrite(Pomarancz, LOW); digitalWrite(zielony, LOW); digitalWrite(zolty, LOW); digitalWrite(Zolty, LOW); digitalWrite(czerwony, LOW); digitalWrite(Czerwony, LOW); los = losujemy(); switch(los){ case 1:// wylosowana liczba 1 digitalWrite(zielony, HIGH); delay(czas); czas = czas +25;// <-- ustawiam kilka czasów by losował różnie break; case 2:// wylosowana liczba 2 digitalWrite(pomarancz, HIGH); digitalWrite(Czerwony, HIGH); delay(czas); czas = czas +30;// <-- break; case 3:// wylosowana liczba 3 digitalWrite(pomarancz, HIGH); digitalWrite(zielony, HIGH); digitalWrite(Czerwony, HIGH); delay(czas); czas = czas +35;// <-- break; case 4:// wylosowana liczba 4 digitalWrite(pomarancz, HIGH); digitalWrite(Pomarancz, HIGH); digitalWrite(czerwony, HIGH); digitalWrite(Czerwony, HIGH); delay(czas); czas = czas +40;// <-- break; case 5:// wylosowana liczba 5 digitalWrite(pomarancz, HIGH); digitalWrite(Pomarancz, HIGH); digitalWrite(zielony, HIGH); digitalWrite(czerwony, HIGH); digitalWrite(Czerwony, HIGH); delay(czas); czas = czas +45;// <-- break; case 6:// wylosowana liczba 6 digitalWrite(pomarancz, HIGH); digitalWrite(Pomarancz, HIGH); digitalWrite(zolty, HIGH); digitalWrite(Zolty, HIGH); digitalWrite(czerwony, HIGH); digitalWrite(Czerwony, HIGH); delay(czas); czas = czas +50;// <-- break; } } } void glosnik(){ while(los > 0){ los = los -1; digitalWrite(buzer, HIGH); delay(500); digitalWrite(buzer, LOW); delay(500); } } void loop() { if (digitalRead(przycisk) == LOW){// wciśniecie przycisku Serial.println ("Następuje losowanie"); czas = 0; wyświetlenie(); zadanie(); glosnik(); } } tak wygląda a tak działa
  7. A umnie wpisuje i nic :/ pisze nie prawidłowy kod. A kod to chyba ten sam co dostałem w pudełku ?
  8. Pytanie mam chce kupić 2 zestaw arduino ale nie wiem jak wpisać botland kod mój rabatowy dziękuje za szybką pomoc
  9. zadanie 9.1 #define czerwona 9 int czas = 10; void setup() { pinMode(czerwona, OUTPUT);// ustawienie pina jako wyjście } void pulsacja(){ for(int a = 0; a <= 255; a++){// rozjaśniamy diodę analogWrite(czerwona, a); delay(czas); } for(int a = 255; a >= 0; a--){// przygaszamy diodę analogWrite(czerwona, a); delay(czas); } } void loop() { pulsacja();// uruchamiamy program } zadanie 9.2 #define czerwona 9 void setup() { pinMode(czerwona, OUTPUT);// ustawienie pinu jako wyjście zamigaj(300,1000,5);// nadanie argumentów dla zamigaj i odpalenie programu } void zamigaj(int czas, int Czas, int ile){ for(int a = 0; a < ile; a++){ digitalWrite(czerwona, HIGH); delay(czas);// swieci 300 milisek digitalWrite(czerwona, LOW); delay(Czas);// gaśnie 1 sec } } void loop() { } zadanie 9.3 String odpis = ""; String Odpis = ""; String dane = ""; int naszeA = 0; int naszeB = 0; int naszeC = 0; int wpis = 0; void setup() { Serial.begin(9600);// Połączenie z komputerem Serial.print("Ktore zadanie chcesz zrobic:\n"); Serial.println("pole prostokąta wpisz 1 i wcisnij enter"); Serial.println("pole trujkąta wpisz 2 i wcisnij enter"); Serial.println("pole koła wpisz 3 i wcisnij enter "); } int prostokat(int a, int b){//obliczamy pole prostokąta int wynik = 0; wynik = a * b; return wynik; } float trujkat(int a, int b){//obliczamy pole trójkąta float wynik = 0; wynik = 0.5 * a * b; return wynik; } float kolo(int c){//obliczamy pole kola float wynik = 0; wynik = PI*c*c; return wynik; } int liczbaA(){// nadajemy do wzoru liczbę a while(naszeA == 0){ odpis = Serial.readStringUntil('\n'); naszeA = odpis.toInt(); } Serial.flush(); Serial.print(naszeA); Serial.print("*"); return naszeA; } int liczbaB(){// nadajemy do wzoru liczbę b while(naszeB == 0){ Odpis = Serial.readStringUntil('\n'); naszeB = Odpis.toInt(); } Serial.flush(); Serial.println(naszeB); return naszeB; } int liczbaC(){// nadajemy do wzoru liczbę c while(naszeC == 0){ dane = Serial.readStringUntil('\n'); naszeC = dane.toInt(); } Serial.flush(); Serial.print(naszeC); Serial.println("^2"); return naszeC; } void wynikProstokata(){ Serial.print("Podaj dane by obliczyc pole prostokata\n"); Serial.println("Wzór:"); Serial.println("P = a*b"); Serial.println("wpisz zmienna a nastepnie wcisnij enter potem wpisz b i wcisnij enter"); Serial.print("P="); liczbaA(); liczbaB(); int wynik = prostokat(naszeA,naszeB); Serial.println("wynik"); Serial.println(wynik); Serial.println("jesli chcesz obliczać wpisz numer zadania"); naszeA = 0; naszeB = 0; } void wynikTrujkata(){ Serial.print("Podaj dane by obliczyc pole trujkata\n"); Serial.println("Wzór"); Serial.println("P = 1/2*a*h"); Serial.println("wpisz zmienna a nastepnie wcisnij enter potem wpisz h i wcisnij enter"); Serial.print("P=1/2*"); liczbaA(); liczbaB(); float wynik = trujkat(naszeA,naszeB); Serial.println("wynik"); Serial.println(wynik); Serial.println("jesli chcesz obliczać wpisz numer zadania"); naszeA = 0; naszeB = 0; } void wynikKola(){ Serial.print("Podaj dane by obliczyc pole kola\n"); Serial.print("Wzór\n P="); Serial.print(PI); Serial.println("*r^2"); Serial.println("wpisz zmienna r i wcisnij enter"); Serial.print("P="); Serial.print(PI); Serial.print("*"); liczbaC(); float wynik = kolo(naszeC); Serial.println("wynik"); Serial.println(wynik); Serial.println("jesli chcesz obliczać wpisz numer zadania"); naszeC = 0; } void loop() { if(Serial.available() > 0){//sprawdzamy czy coś jest buforze wpis = Serial.read(); switch(wpis){// nadajemy możliwość wybrania zadania case '1': wynikProstokata(); break; case '2': wynikTrujkata(); break; case '3': wynikKola(); break; } } } zadanie 9.4 #define triger 9 #define echo 10 #define glosnik 8 #define czerwona 2 #define Czerwona 3 #define zolta 4 #define Zolta 5 #define zielona 6 #define Zielona 7 void setup() { Serial.begin(9600); pinMode(triger, OUTPUT);// ustawienie nadajnika jako wyjscie pinMode(echo, INPUT);// ustawienie odbiornika jako wejscie pinMode(glosnik, OUTPUT);// nasz piszczek jako wyjscie pinMode(czerwona, OUTPUT);// ustawienie linijki jako wyjscia pinMode(Czerwona, OUTPUT); pinMode(zolta, OUTPUT); pinMode(Zolta, OUTPUT); pinMode(zielona, OUTPUT); pinMode(Zielona, OUTPUT); } int dalekościomierz(){// wyliczenie dystansu long czas, dystans; digitalWrite(triger, LOW); delayMicroseconds(2); digitalWrite(triger, HIGH); delayMicroseconds(10); digitalWrite(triger , LOW); czas = pulseIn(echo, HIGH); dystans = czas /58;// zamiana na cm return dystans; } void zakres(int a, int b){// zakres działania piszczka int jakDaleko = dalekościomierz(); if ((jakDaleko > a)&&(jakDaleko < b)){ digitalWrite(glosnik, HIGH); } else{ digitalWrite(glosnik, LOW); } } void odlegloscLED(){// nasza linijka sterowana odległością digitalWrite(czerwona, LOW); digitalWrite(Czerwona, LOW); digitalWrite(zolta, LOW); digitalWrite(Zolta, LOW); digitalWrite(zielona, LOW); digitalWrite(Zielona, LOW); int odleglosc = dalekościomierz(); odleglosc = map(odleglosc, 2,50,1,6);// dziele odległość na części switch(odleglosc){ case 1: digitalWrite(czerwona, HIGH); break; case 2: digitalWrite(Czerwona, HIGH); break; case 3: digitalWrite(zolta, HIGH); break; case 4: digitalWrite(Zolta, HIGH); break; case 5: digitalWrite(zielona, HIGH); break; case 6: digitalWrite(Zielona, HIGH); break; } } void loop(){ zakres(2, 50); odlegloscLED(); delay(100); } [ Dodano: 15-02-2018, 19:10 ] zadanie dodatkowe przez kolegę z pracy 😉 Wyświetl odległość na wyświetlaczu To zrobiłem i chciałem się pochwalić wam Program : #include <LiquidCrystal.h>// uruchomienie biblioteki LiquidCrystal wyswietlacz(2,3,4,5,6,7);//wskazanie pinów wyświetlaczowi #define triger 12// nadajnik #define echo 13// odbiornik void setup() { Serial.begin(9600);// polaczenie z komputerem by sprawdzić czy działa prawidłowo pinMode(triger, OUTPUT); pinMode(echo, INPUT); wyswietlacz.begin(16,2); wyswietlacz.clear(); wyswietlacz.setCursor(0,0); wyswietlacz.print("Dalekosciomierz"); wyswietlacz.setCursor(5,1); wyswietlacz.print("000 cm"); } int dalekosciomierz(){// obliczanie odległości long czas, dystans; digitalWrite(triger, LOW); delayMicroseconds(2); digitalWrite(triger, HIGH); delayMicroseconds(10); digitalWrite(triger , LOW); czas = pulseIn(echo, HIGH);// próbkowanie odległości dystans = czas /58;// zamienianie na cm dystans = dystans + 7.8;// to dodatkowo by mozna bylo liczyć od początku płytki if(dystans > 400){// zabezpieczenie by nie pokazywał głupot dystans = 400; } Serial.println(dystans); delay(100); return dystans; } void wyswietlaczLED(){// wyświetlanie odległości int odleglosc = dalekosciomierz(); if(odleglosc <= 9){// liczymy 1 cyfrę wyswietlacz.setCursor(7,1); wyswietlacz.print(odleglosc); } if((odleglosc > 9)&&(odleglosc <= 99)){// liczymy 2 cyfrę od lewej wyswietlacz.setCursor(6,1); wyswietlacz.print(odleglosc); } else{ wyswietlacz.setCursor(6,1); wyswietlacz.print("0"); } if((odleglosc > 99)&&(odleglosc <= 999)){// liczymy 3 cyfrę od lewej wyswietlacz.setCursor(5,1); wyswietlacz.print(odleglosc); } else{ wyswietlacz.setCursor(5,1); wyswietlacz.print("0"); } } void loop(){ wyswietlaczLED();// wyświetlamy wynik delay(100); } Schemat połączenia : A tak działa:
  10. zadanie 8.1 void setup() { pinMode(6, OUTPUT); digitalWrite(6, HIGH); // Prędkość silnika 1 pinMode(7, OUTPUT); // Lewo pinMode(8,OUTPUT); // Prawo pinMode(10 ,OUTPUT); digitalWrite(10, HIGH); // Prędkość silnika 2 pinMode(11, OUTPUT); // Lewo pinMode(12, OUTPUT); // Prawo } void loop() { digitalWrite(7, LOW); // oba silniki do przodu digitalWrite(8, HIGH); digitalWrite(11, LOW); digitalWrite(12, HIGH); delay(3000); digitalWrite(11,HIGH);// skręcenie silnika w prawo digitalWrite(12, LOW); delay(3000); digitalWrite(7, HIGH);// oba silniki wstecz digitalWrite(8, LOW); digitalWrite(11, HIGH); digitalWrite(12, LOW); delay(3000); digitalWrite(7, LOW); //oba silniki do przodu digitalWrite(8, HIGH); digitalWrite(11, LOW); digitalWrite(12, HIGH); delay(3000); digitalWrite(7, HIGH);// skrecenie silnika w lewo digitalWrite(8, LOW); delay(3000); digitalWrite(11, HIGH);// oba siliki wstecz digitalWrite(12, LOW); delay(3000); } zadanie 8.2.1 void setup() { pinMode(6, OUTPUT);// prędkość silnika digitalWrite(6, HIGH); pinMode(7, OUTPUT); pinMode(8,OUTPUT); for (int zliczanie = 0; zliczanie < 5; zliczanie ++){// zlicza i sprawdza czy nie jest większe od 5 digitalWrite(7, LOW);// świecenie na zmianę digitalWrite(8, HIGH); delay(1000); digitalWrite(7, HIGH); digitalWrite(8, LOW); delay(1000); } } void loop() { } 8.2.2 void setup() { int zmiana = 0; pinMode(6, OUTPUT);// prędkość silnika digitalWrite(6, HIGH); pinMode(7, OUTPUT); // dioda 1 pinMode(8,OUTPUT);// dioda 2 while (zmiana < 5){// sprawdź czy zmienna nie jest większa od 5 zmiana = zmiana + 1;//jeśli nie dodaj 1 do zmiennej digitalWrite(7, LOW);// świecenie na zmianę diod digitalWrite(8, HIGH); delay(1000); digitalWrite(7, HIGH); digitalWrite(8, LOW); delay(1000); } } void loop() { } zadanie 8.3 void setup() { Serial.begin(9600);// połączenie z komputerem for(int a = 0; a <= 9; a++){// zliczanie a do 9 Serial.print(a);// wypisanie a Serial.println("*");// wyswietlenie gwiazdki } } void loop() { } zadanie 8.4 void setup() { pinMode(6, OUTPUT);// predkosc silika pinMode(7, OUTPUT);// krecenie w lewo (hamowanie) pinMode(8, OUTPUT);// krecenie w prawo przyspieszanie } void loop() { for(int a = 0; a <= 255; a++){// przyspieszamy silnik analogWrite(6, a); digitalWrite(7, LOW); digitalWrite(8, HIGH); delay(25); } for(int a = 255; a >= 0; a--){// hamujemy silnik analogWrite(6, a); digitalWrite(7, HIGH); digitalWrite(8, LOW); delay(25); } }
  11. zadanie 7.1 #include <LiquidCrystal.h> LiquidCrystal wyswietlacz(2,3,4,5,6,7); void setup() { wyswietlacz.begin(16, 2); wyswietlacz.setCursor(6,0); wyswietlacz.print("Mistus"); wyswietlacz.setCursor(5,1); wyswietlacz.print("forbot.pl"); } void loop() { } zadanie 7.2 nie nadarza zliczać wyświetlacz (zbyt szybkie zmiany na dzielniku) zadanie 7.3 przy używaniu clear w całej pętli loop powoduje mruganie tekstu zadanie 7.4 Miałem mały problem z wyświetlaniem 0 ale jakoś sobie poradziłem ;0 #include <LiquidCrystal.h>// włączenie biblioteki LiquidCrystal wyswietlacz(2,3,4,5,6,7);//ustawienie pinów wyświetlaczowi #define przycisk1 9// dajemy nazwę pinom #define przycisk2 10 int milisec = 0;//zmienne do zliczania int czas =0; int sec = 0; int minu = 0; int minuta = 0; int zmiana = true; void setup() { pinMode(przycisk1, INPUT_PULLUP);// ustawiamy przyciski jako wejscie pinMode(przycisk2, INPUT_PULLUP); wyswietlacz.begin(16,2);//dane ile wierszy i znakow ma wyświetlacz wyswietlacz.clear();// czyścimy dane wyswietlacz.setCursor(0,1);//załączamy drugi wiersz wyswietlacz.print("00:00");//ustawiamy początkowy stan wyświetlacza wyswietlacz.setCursor(5,0);//załączamy pierwszy wiersz i zaczynamy od 5 znaku wyswietlacz.print("Stoper");// nadajemy nazwę stoperowi } void loop() { wyswietlacz.setCursor(8,1);//załączamy drugi wiersz i zaczynamy od 8 znaku wyswietlacz.print("mistus");// nazwa użytkownika ;) if (digitalRead(przycisk1) == LOW){//jeśli wciśnięty przycisk to : delay (800); zmiana = true;// ustawiamy by przycisk działał w dwie strony while(zmiana == true){//pętla by w kółko zliczał jeśli nie jest przytrzymany przycisk drugi raz wyswietlacz.setCursor(2,1);// wyświetlanie na zmianę dwukropka wyswietlacz.print(" "); delay (500); wyswietlacz.setCursor(2,1); wyswietlacz.print(":"); delay(200); milisec = milisec +1; wyswietlacz.setCursor(4,1); wyswietlacz.print(milisec); delay(350); if((milisec == 9)&&(sec == 5)){//zliczanie 00:** milisec = 0; sec = 0; wyswietlacz.setCursor(3,1); wyswietlacz.print(sec); wyswietlacz.setCursor(4,1); wyswietlacz.print(milisec); minu = minu +1; wyswietlacz.setCursor(1,1); wyswietlacz.print(minu); } else if (milisec == 9){// zliczanie 00:0* milisec = 0; delay (500); wyswietlacz.setCursor(4,1); wyswietlacz.print(milisec); milisec = 10; } if (milisec == 10){//zmuszenie wyświetlenia 0 sec = sec +1; milisec = 0; wyswietlacz.setCursor(3,1); wyswietlacz.print(sec); delay (350); } if ((minu == 9)&&(minuta == 5)){//zliczanie **:** milisec = 0; sec = 0; minu = 0; minuta = 0; wyswietlacz.setCursor(4,1); wyswietlacz.print(milisec); wyswietlacz.setCursor(3,1); wyswietlacz.print(sec); wyswietlacz.setCursor(1,1); wyswietlacz.print(minu); wyswietlacz.setCursor(0,1); wyswietlacz.print(minuta);// restart jak dojdzie do 59:59 } else if (minu == 9){//zlicznaie 0*:** minu = 0; wyswietlacz.setCursor(1,1); wyswietlacz.print(minu); minuta = minuta +1; wyswietlacz.setCursor(0,1); wyswietlacz.print(minuta); } if (digitalRead(przycisk1) == LOW){// zatrzymanie stopera delay(1000); zmiana = false; } } } if (digitalRead(przycisk2) == LOW){// reset stopera delay (100); milisec = 0; sec = 0; minu = 0; minuta = 0; wyswietlacz.setCursor(4,1); wyswietlacz.print(milisec); wyswietlacz.setCursor(3,1); wyswietlacz.print(sec); wyswietlacz.setCursor(1,1); wyswietlacz.print(minu); wyswietlacz.setCursor(0,1); wyswietlacz.print(minuta); zmiana = false; } } a o to jak działa
  12. Trochę mało światła mam muszę lepsza żarówkę kupić ;D [ Dodano: 20-01-2018, 09:43 ] Wróciłem do zadania 6.2 i próbowałem po wpisie Soyera ale dalej nic z tego próbuje zamienić z String na int (toINT lub int(zmiena); i ciągle co pisze kolor to odczytuje 0 liczby of szem czyta a napisów nie Już sił mi brakuje oraz brat google nie potrafi mi pomoc ;/
  13. zadanie 6.2 Nie do końca chciałem tak zrobić chciałem by moc wpisywać cala nazwę np. czerwony i wyświetlał diodę ale nie znam zmiennej , funkcji która by na to pozwoliła wiec zrobiłem tak ;/ (W przyszłości jak przejdę ten kurs to wrócę do zadania i zrobię tak jak bym chciał 🙂) A o to kod #define zielona 8 #define czerwona 9 int czas = 1000; int dane = 0; void setup() { Serial.begin(9600);//połącz się z komputerem pinMode(zielona, OUTPUT);// nadaj pinom wyjścia pinMode(czerwona, OUTPUT); digitalWrite(zielona, LOW);// nadaj pinom stan niski digitalWrite(czerwona, LOW); } void loop() { if(Serial.available() > 0){// sprawdź czy coś jest w buforze dane = Serial.read();// odczytaj jeden znak switch(dane){// porównaj czy dane jest z lub c jeśli nie case 'z': digitalWrite(zielona, HIGH); delay(czas); digitalWrite(zielona, LOW); break; case 'c': digitalWrite(czerwona, HIGH); delay(czas); digitalWrite(czerwona, LOW); break; default: Serial.println("Niema takiego koloru");// wpisz niema takiego koloru break; } } }
  14. zadanie 6.1 int potencjometr = 0; int fotorezystor = 0; int fotorezystorek = 0; int zliczanie = 0; int czas = 800; #define przycisk 8 void setup() { Serial.begin(9600); pinMode(przycisk, INPUT_PULLUP);// ustawienie przycisku jako wejście } void loop() { potencjometr = analogRead(A5);// odczytanie wartości z pinów fotorezystor = analogRead(A4); fotorezystorek = analogRead(A3); if (digitalRead(przycisk) == LOW){//sprawdzenie czy przycisk jest wciśnięty delay(czas); Serial.print("fotorezystor:");//wypisanie danych Serial.print(fotorezystor); Serial.print("\t fotorezystorek:"); Serial.print(fotorezystorek); Serial.print("\t potencjometr:"); Serial.print(potencjometr); zliczanie = zliczanie + 1;//dodaje kliknięcia przycisku Serial.print("\t przycisk wciśnięto:"); Serial.println(zliczanie); } }
×
×
  • 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.