Skocz do zawartości

solowkidamian

Użytkownicy
  • Zawartość

    15
  • Rejestracja

  • Ostatnio

O solowkidamian

  • Urodziny 30.09.2006

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

solowkidamian's Achievements

2/10

2/10 (2/10)

4

Reputacja

  1. Witam. Znalazłem jakiś stary układ elektroniczny w warsztacie ojca, wziąłem go z zamiarem rozlutowania na części, oczywiście za zgodą tatusia. Układ zawierał dwa kabelki przylutowane już do mostka prostowniczego na stałe i dwa, na prawej stronie układu, które można było odczepić, po lewej stronie znajdowało się puste gniazdo na dwa kable. Na samym dole wychodziły trzy czarne kable które też były wyczepiane, te jednak były ukręcone na tej płytce. Elementy z płytki w miarę udało mi się zidentyfikować i podpisać na zdjęciu, nie podpisałem tylko mostka prostowniczego którym jest duży czarny kwadrat i tej dużej czarnej diody postawionej tak trochę śmiesznie na sztorc. Najbardziej zależy mi na tym scalaku, chciałbym wiedzieć co to może być bo niestety jest niepodpisany. Będę bardzo wdzięczny za pomoc.
  2. mam pytanie czy zamiast tego kondensatora filtrującego o pojemności 47uF można by było dać kondensator ceramiczny o pojemności 47nF?
  3. @farmaceuta Dzięki za pomoc na pewno popatrzę na te tematy
  4. @trainee dzięki wielkie, nie wiedziałem że zmienna int ma swoje granice warto wiedzieć, zapamiętam też sobie tom nieskończoną pętle. Robiłem gdzieś rok temu kurs C++ z YT i tez było na pewno o tej pętli, niestety skleroza. co do tego dzielenia przez 28 to tak właśnie z tego co sprawdzałem w tedy najdokładniej stoper podawał sekundy. Sprawdzę też tą funkcje millis()
  5. #include <Wire.h> #include <LiquidCrystal_I2C.h> #define START 12 #define STOP 4 LiquidCrystal_I2C lcd(0x20, 16, 2); void setup() { pinMode(START, INPUT_PULLUP); pinMode(STOP, INPUT_PULLUP); lcd.begin(); lcd.clear(); lcd.backlight(); lcd.setCursor(0,0); lcd.print("Stoper"); lcd.setCursor(0,1); } void loop() { int stan1 = digitalRead(START); int stan2 = digitalRead(STOP); int godzina = 0; int minuta = 0; int sekunda = 0; if(digitalRead(START) == LOW) { lcd.setCursor(0,0); lcd.print("START:"); lcd.setCursor(0,1); for(int i = 0; i >= 0; i++) { delay(10); sekunda = sekunda + 1; lcd.print(godzina); lcd.print("gdz "); lcd.print(minuta); lcd.print("min "); if (sekunda >= 28){ lcd.print(sekunda / 28); } else { lcd.print("0"); } lcd.print("sec "); if (sekunda / 28 > 60) { sekunda = 0; minuta = minuta + 1; } if (minuta > 60) { minuta = 0; godzina = godzina + 1; } lcd.setCursor(0,1); if(digitalRead(STOP) == LOW) { i = -2; lcd.setCursor(0,0); lcd.print("STOP: "); lcd.setCursor(0,1); } } } if(digitalRead(STOP) == LOW) { } delay(200); } zad 7.4 tylko miałem problem że nie mogę ustawić stopera dokładnie, mija się trochę i przy pomiarze np. 10 minut rozjeżdża się o około 10 sekund nie wiem jak to naprawić aby dokładniej mierzył będę wdzięczny za wskazówkę jak to zrobić.
  6. Witam udało mi sie zrobić zadania 5.3, 5.4 oraz 5.5 Zad 5.3 #include <Servo.h> Servo serwomechanizm; int pozycja = 0; int zmiana = 6; int czas = 150; void setup() { serwomechanizm.attach(9); Serial.begin(9600); } void loop() { for (int i = 0; i <= 1500; i = i + 50){ if (pozycja < 180) { serwomechanizm.write(pozycja); } else { pozycja = 0; } pozycja = pozycja + zmiana; Serial.println( i); delay(czas + i); if (i >= 1500){ i = 0; } } } 5.4 #include <Servo.h> Servo serwomech; int odebraneDaneINT = 0; String odebraneDane = ""; bool stan = true; int pozycja = 0; void setup() { Serial.begin(9600); serwomech.attach(9); } void loop() { if(stan == true) { Serial.println("Podaj liczbe z zakresu od 0 do 180"); stan = false; } if(Serial.available() > 0) { odebraneDane = Serial.readStringUntil('\n'); odebraneDaneINT = odebraneDane.toInt(); Serial.println(odebraneDaneINT); if (odebraneDaneINT >= 0 && odebraneDaneINT <= 180 ) { Serial.println("git"); odebraneDaneINT; serwomech.write(odebraneDaneINT); } else if(odebraneDaneINT < 0 or odebraneDaneINT > 180) { Serial.println("Podano blednom liczbe"); } } delay(1000); } 5.5 #include <Servo.h> Servo servo; int odczyt = 0; void setup() { servo.attach(9); } void loop() { odczyt = analogRead(A1); odczyt = map(odczyt, 0, 1021, 0, 180); servo.write(odczyt); } będę wdzięczny za komentarze i uwagi
  7. @H1M4W4R1 chodzi mi o to że w tej części kursu z pinu VIN napięcie jest niejako brane a nie załączane i tu moje pytanie jakie napięcie jest między pinem VIN a GND?
  8. @H1M4W4R1 ale jak na tym schemacie podłaczaja bateria 9 volt to powinno byc 9 tak? nie wiem czy to dobrze rozumiem
  9. mam pytanie, jakie napięcie powinno być między pinem VIN a GND w tym schemacie montazu servo mechaznimu? byłbym bardzo wdzięczny za odpowiedz
  10. #define LED 3 int wypelnienie = 0; int zmiana = 5; boolean stan = true; void setup() { pinMode(3, OUTPUT); Serial.begin(9600); } void loop() { analogWrite(LED, wypelnienie); Serial.println(wypelnienie); Serial.println(stan); if (wypelnienie >= 0 && stan == true) { wypelnienie = wypelnienie + zmiana; if (wypelnienie == 255) { stan = false; } } else { wypelnienie = wypelnienie - zmiana; if(wypelnienie == 0) { stan = true;} } delay(50); } zad 5.2 kurde aż wstyd mówić ale miałem ogromne problemy z tym zadaniem. Pomysł miałem od początku ale ciągle mi program nie działał, dopiero po gdy zacząłem testować program kawałek po kawałku zrozumiałem że problem tkwił w znakach równości nie dawałem w warunkach if "==" tylko "=" i przez to program wariował
  11. int daneL = 0; int daneP = 0; int regulacja = 0; void setup() { Serial.begin(9600); pinMode(8,OUTPUT); pinMode(9,OUTPUT); pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(12,OUTPUT); digitalWrite(8,LOW); digitalWrite(9,LOW); digitalWrite(10,LOW); digitalWrite(11,LOW); digitalWrite(12,LOW); } void loop() { for (int i = 0; i >= -1; i++) { regulacja = analogRead(A3); daneL = analogRead(A4); daneP = analogRead(A5); if (i == 1000) { Serial.print(daneL); Serial.println("Lewo"); Serial.print(daneP); Serial.println("Prawo"); Serial.print(regulacja); Serial.println("Regulacja"); i = 0; } delay(3); if(daneL >= regulacja or daneP >= regulacja) { if (daneL - daneP >= 15 or daneP - daneL >= 15){ if (daneL < daneP){ digitalWrite(12,HIGH); digitalWrite(9,LOW); digitalWrite(8,LOW); if (daneP - daneL >= 150){ digitalWrite(11,HIGH); digitalWrite(9,LOW); } else { digitalWrite(11,LOW); } if (daneP - daneL >= 270) { digitalWrite(10,HIGH); } else { digitalWrite(10,LOW); } } else if (daneL > daneP){ digitalWrite(8,HIGH); digitalWrite(12,LOW); digitalWrite(11,LOW); if (daneL - daneP >= 150){ digitalWrite(9,HIGH); digitalWrite(11,LOW); } else { digitalWrite(9,LOW); } if (daneL - daneP >= 270) { digitalWrite(10,HIGH); } else { digitalWrite(10,LOW); } } } else { digitalWrite(8,LOW); digitalWrite(9,LOW); digitalWrite(10,LOW); digitalWrite(11,LOW); digitalWrite(12,LOW); } } else { digitalWrite(8,LOW); digitalWrite(9,LOW); digitalWrite(10,LOW); digitalWrite(11,LOW); digitalWrite(12,LOW); } } } Witam udało mi się zrobić zadanie 4.6 trochę prymitywnie bo na samych funkcjach if cóż ważne że działa. oczywiście funkcja for jest tu niepotrzebna ale dałem ją dla własnej wygody i aby trochę się pobawić. tak samo zmienna "regulacja", zamysł był taki żeby regulować czułość ale w sumie nie wiedziałem jak sie za to wziąć i czy jest wogule potrzebne wiec działa tutaj głównie jako wyłącznik.
  12. witam udało mi się zrobić zadanie 4.5 int rozwiazanie = 0; int odebraneDaneINT = 0; String odebraneDane = ""; void setup() { Serial.begin(9600); pinMode(7,INPUT_PULLUP); pinMode(8,OUTPUT); pinMode(9,OUTPUT); pinMode(10,OUTPUT); digitalWrite(8,LOW); digitalWrite(9,LOW); digitalWrite(10,LOW); } void loop() { Serial.println("Witaj w grze"); delay(1000); Serial.println("Przekrec potenjometr w losowe miejsce, a nastepnie wcisnij przycisk"); delay(1000); while(digitalRead(7) == HIGH) {} delay(500); rozwiazanie = analogRead(A1); // Serial.println(rozwiazanie); for (int i=0; i <= 3 ; i++){ Serial.println("Zgaduj liczby od 0 do 1023"); //Serial.println(i); while(digitalRead(7) == HIGH) {} delay(500); if(Serial.available() > 0) { odebraneDane = Serial.readStringUntil('\n'); odebraneDaneINT = odebraneDane.toInt(); Serial.println(odebraneDane); } if (odebraneDaneINT <= rozwiazanie+50 && odebraneDaneINT >= rozwiazanie-50){ Serial.println("Wygrales!!!"); digitalWrite(8,HIGH); delay(3000); digitalWrite(8,LOW); i=4; } else if (2-i == 0) { Serial.println("Przegrales"); digitalWrite(9,HIGH); delay(3000); digitalWrite(9,LOW); i=4; } else{ Serial.print("zostaly ci jeszcze "); Serial.print(2 - i); Serial.print(" proby"); Serial.print(" "); digitalWrite(10,HIGH); delay(3000); digitalWrite(10,LOW); } } } niestety nie wiedziałem jak zmienić zmienną string na inta i musiałem podejrzeć w jednym z komentarzy, tak to sam zrobiłem sprawiło mi to problemy nie powiem w końcu jest
  13. @farmaceuta a okej teraz rozumiem, faktycznie mogłem tak zrobic
  14. własnie w tym rzecz ze trzeba bo gdy jest tylko jedna bool i załacze np dide zielona to nie załacze od razu diody czerwonej bo bool jest ustawiony na true czyli jego pzreciwienstwem jest falsz wiec nie zalaczy drugiej diody
  15. witam udało mi sie zrobic zadanie z gwiazdka #define zielona 8 #define czerwona 9 String odebraneDane = ""; bool dane1 = false; bool dane2 = false; void setup() { Serial.begin(9600); pinMode(zielona,OUTPUT); pinMode(czerwona,OUTPUT); digitalWrite(zielona,LOW); digitalWrite(czerwona,LOW); } void loop() { if(Serial.available() > 0){ odebraneDane = Serial.readStringUntil('\n'); if (odebraneDane == "zielona"){ digitalWrite(zielona, !dane1); dane1=!dane1; } if (odebraneDane == "czerwona"){ digitalWrite(czerwona, !dane2); dane2=!dane2; } } } tutaj kod jagby ktos chciał podejrzec jestem tez ciekaw czy dobrze zastosowałem tutaj ta funkcje bool
×
×
  • 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.