Skocz do zawartości

PukiSlu

Użytkownicy
  • Zawartość

    3
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralna

O PukiSlu

  • Ranga
    1/10

Informacje

  • Płeć
    Mężczyzna
  1. Jest szansa na dodanie artykułu na temat wyświetlacza multipelksowanego 7-segmentowego SH5461AS ? Chodzi mi o samo podłączenie, wyjaśnienie pinów i skrótowo sterowanie przez Arduino (jakie polecenia do czego służą itp), chyba, że ktoś poratuje jakimś linkiem ? Ewentualnie 5161AS ? z góry dzięki za pomoc
  2. Zadanie 6.1 #define przycisk 7 int potencjometr=0; int fotorezystor1=0; int fotorezystor2=0; int nacisniecia=0; void setup() { Serial.begin(9600); pinMode(przycisk, INPUT_PULLUP); } void loop() { potencjometr=analogRead(A4); fotorezystor1=analogRead(A5); fotorezystor2=analogRead(A3); if(digitalRead(przycisk)==LOW){ Serial.print("Fotorezystor 1: "); Serial.print(fotorezystor1); Serial.print("\t Fotorezystor 2: "); Serial.print(fotorezystor2); Serial.print("\t Potencjometr: "); Serial.print(potencjometr); nacisniecia+=1; Serial.print("\t Nacisniecia: "); Serial.print(nacisniecia); Serial.print("\n"); delay(300); } } Zadanie 6.2 #define zielona 8 #define czerwona 9 int odebraneDane=0; void setup() { Serial.begin(9600); //Uruchomienie komunikacji pinMode(zielona, OUTPUT); //Konfiguracja wyjść pinMode(czerwona, OUTPUT); digitalWrite(zielona, LOW); //Wyłączamy diody digitalWrite(czerwona, LOW); } void loop() { if(Serial.available() > 0) { //Czy Arduino odebrano dane //Jeśli tak, to odczytujemy je do znaku końca linii i zapisz w zmiennej odebraneDane odebraneDane = Serial.read(); switch(odebraneDane){ case '1': digitalWrite(zielona,HIGH); delay(1000); digitalWrite(zielona, LOW); break; case '2': digitalWrite(czerwona, HIGH); //To włączamy diodę czerwoną delay(1000); digitalWrite(czerwona, LOW); break; default: Serial.println("Bledny kolor. 1-zielona, 2-czerwona"); break; } } }
  3. Zadanie 5.4 Zastanawiam się tylko, czy można w jakiś lepszy łatwiejszy sposób spowodować, aby na początku komunikat z prośbą o podanie kąta pojawił się tylko raz, srednio podoba mi się korzystanie z false i true, a informatykiem nie jestem, raczej mechanikiem #include <Servo.h> //Biblioteka serwa Servo serwomechanizm; //Obiekt odwołania do serwa int pozycja1 = 0; //pozycja wstępna String odebraneDane=""; //dane wprowadzone przez UART int odebraneDane_int; boolean pauza=false; void setup() { serwomechanizm.attach(9); //Serwomechanizm podłączony do pinu 9 Serial.begin(9600); serwomechanizm.write(pozycja1); } void loop() { if (pauza==false){ Serial.println("Podaj kat od 0-180"); pauza=true; } if(Serial.available() > 0) { odebraneDane = Serial.readStringUntil('\n'); odebraneDane_int=odebraneDane.toInt(); if (odebraneDane_int<=180 && odebraneDane_int>=0){ Serial.println("Podano kat:" + odebraneDane); delay(1000); serwomechanizm.write(odebraneDane_int); Serial.println("Obecny kat to:"); Serial.println(odebraneDane_int); delay(100); } else { Serial.println("Podano zla wartosc. Podaj kat 0-180"); delay(100); } } } ZADANIE 5.5 Tutaj wyszło mi to jakoś bardzo prosto mam nadzieje, że wszystko poprawnie, martwi mnie tylko, że przy kręceniu potencjometrem, w jednym skrajnym położeniu, zanim silnik zacznie reagować, muszę najpierw obrócić pokrętłem potencjometru o jakieś 100-120 stopni, natomiast w 2 skrajnym położeniu reaguje on natychmiastowo... :/ #include <Servo.h> //Biblioteka serwa Servo serwomechanizm; //Obiekt odwołania do serwa int pozycja1 = 0; //pozycja wstępna float odebraneDane=0; //wartosc ustawiona na potencjometrze void setup() { serwomechanizm.attach(9); //Serwomechanizm podłączony do pinu 9 serwomechanizm.write(pozycja1); } void loop() { odebraneDane=analogRead(A5); //odczytanie wartosci z A5 potencjometru odebraneDane=map(odebraneDane, 0, 1024, 0, 180);//Przeskalowanie wartości serwomechanizm.write(odebraneDane); delay(5); }
×
×
  • Utwórz nowe...