Skocz do zawartości

Synergia

Użytkownicy
  • Zawartość

    32
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    1

Wszystko napisane przez Synergia

  1. O konkretne układy nie pytałem, ale tak ogólnie, czy będą analogowe - odpowiedziałeś, że będą, więc super Obawiałem się tego, że będzie mi brakowało jakichś przejściówek/kabli/innych łączy/czegokolwiek, żeby połączyć to co już mam z elektroniki z Malinką ale skoro piszesz, że nie, to ekstra
  2. Ahhh, no tak, przetworniki ADC, kompletnie o nich nie pomyślałem... Rozumiem, podczas tego kursu ich nie będzie, a w ewentualnej kontynuacji? Czyli jeśli mam wymaganą elektronikę, to w zestawie podstawowym brak czegoś mnie nie zaskoczy (nie wliczając kamerki oczywiście)?
  3. Jeśli mam wymaganą elektronikę do kursu (i nawet więcej niż wymaganą) w domu to nie potrzebuję żadnych dziwnych dodatkowych pozaelektronicznych rzeczy? Pytam tutaj konkretnie o podłączenie jakichś czujników analogowych, w artykule porównującym RPI i Arduino pada stwierdzenie - czy w zestawie podstawowym nie ma takich układów pośrednich, czy nie są one potrzebne? Jeśli są potrzebne, a nie ma, to co to za układy? Jeśli nie są potrzebne, to czy będą w jakiejś kontynuacji? Jednym słowem, konkretnie jakie to są układy pośrednie? Mam nadzieję, że w miarę zrozumiale opisałem problem...
  4. To teraz już rozumiem, dzięki a tak z ciekawości, można przesuwać inne cyfry, poza jedynką, czy tylko ją?
  5. Hmm, ładnie to opisałeś, natomiast jak teraz patrzę, to źle zadałem pytanie, chodziło mi o to, czemu tam jest jedynka? Co on tam robi, skoro potęgujemy dwójkę?
  6. Dzięki, Elvis, za wytłumaczenie, rozwinąłeś kwestię bardzo fajnie, nurtuje mnie jednak jeszcze jedno, a mianowicie, jak jest: 1 << 0 = 1 ( = 2 ^ 0) 1 << 1 = 2 ( = 2 ^ 1) itd. to ta "1" z lewej oznacza (uint16_t)0x0001 czy coś innego?
  7. GPIO_SetBits(GPIOC, 1 << led); //włącz diode Ktoś byłby tak miły w przystępny sposób wyjaśnić co dzieję się w tej linijce? Wiem, że to jest przesunięcie bitowe (a tak przynajmniej mi się wydaje), ale nie bardzo rozumiem jak to działa w tym przykładzie.
  8. Wybaczcie, że pytam, ale jakoś nie umiem znaleźć informacji, albo jestem ślepy. Które konkretnie piny to port C? A które to port B i port A? Jakoś nie umiem dostrzec tego szczegółu w datasheecie ,a podejrzewam , że dowolnie sobie nie można podłączyć kabelków do pinów i założyć "tu jest właśnie pin 10 portu C". Ktoś mógłby pomóc? EDIT: Nie było pytania, jestem ślepy, wszystko jest na karteczce z pudełka z płytką. Post zostawię, może komuś się przyda Mam natomiast inne pytanie, gdzie w takim razie można taki opis znaleźć, jakby tak się zgubiła ta kartka z pudełka?
  9. Wiadomo, wiadomo, bardzo dobre macie te kursy, więc szkoda ,żeby tracić na jakości Nie ma co się spieszyć
  10. Był, był potencjometr, tylko akurat nie widać go na zdjęciu, bo mi się nóżki wyłamały i przylutowałem do wyjść kabelki Jeśli chodzi o te dwa zadania, no to powiem szczerze, ledwo co pojawiły się trudności z odczytem, generalnie prawie nic mi nie przeszkadzało w normalnym odczycie wartości na wyświetlaczu A kod do 7.4 napisałem sam, gdyż w przydługim oczekiwaniu na ten odcinek, sam ogarnąłem co nieco w internecie, napisałem zwykły zegarek i już miałem właściwie 70% roboty z głowy pisząc stoper
  11. Nie no, nie ma problemu tak jak powiedziałem, tak czy siak będę zainteresowany wszystkim, nie jestem tu przecież jedyny, ale po prostu pomyślałem,że jak się da, to lepiej wydać jednak te kilkanaście złotych mniej za przesyłkę, jak się da
  12. Zadanie 7.1 Jeśli chodzi o 7.2 i 7.3 to niestety nie zauważyłem większej różnicy, no może jedynie trochę trudniej pomiar się stabilizuje, często przeskakuje o wartość 0.01, ale tak to żadnego kłopotu z odczytem nie miałem chyba,że coś źle zrobiłem. zadanie 7.4 Chciałem to zrobić inaczej, tak, żeby po wciśnięciu przycisku start stoper czas odmierzał, po wciśnięciu stop czas się zatrzymywał, znowu po wciśnięciu start leciał czas i zatrzymywał po wciśnięciu stop, ale nie mam pomysłu na razie #include <LiquidCrystal.h> LiquidCrystal lcd (2, 3, 4, 5, 6, 7); #define startButton 8 #define stopButton 9 int mins = 0; int sec = 0; int ms = 0; boolean startButtonState; boolean stopButtonState; void setup() { // put your setup code here, to run once: lcd.begin(16, 2); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Simple stopwatch"); lcd.setCursor(0, 1); lcd.print("00:00.00"); pinMode(startButton, INPUT_PULLUP); pinMode(stopButton, INPUT_PULLUP); } void loop() { // put your main code here, to run repeatedly: startStopwatch(); //start stopwatch } void startStopwatch() { startButtonState = digitalRead(startButton); //read button's state if (startButtonState == LOW)//if start button was pressed { while (1) //while loop to write time and increase it by 'miliseconds' function { miliseconds(); stopStopwatch();//check after every single milisecond if "stop button" was pressed and if yes stop increasing time } } } void stopStopwatch() { stopButtonState = digitalRead(stopButton); //read button's state if (stopButtonState == LOW)//if button was pressed { while (1) { lcd.setCursor(10, 1); lcd.print("Finish"); //display inscription } } } void miliseconds() //display miliseconds { if (ms < 10) //if number needs one position { lcd.setCursor(7, 1); lcd.print(ms); lcd.setCursor(6, 1);//before number print "0" lcd.print(0); } else //if number needs two positions { lcd.setCursor(6, 1); lcd.print(ms); } delay(9);//with 10 ms delay, program was a little bit delayed than the true stopwatch ms++;//increase miliseconds if (ms == 100) //after every 100 ms { sec++;//increase seconds by 1 ms = 0;//zero miliseconds seconds();//trigger 'seconds' function } } void seconds()//display seconds { if (sec < 10)//same as in 'miliseconds' { lcd.setCursor(4, 1); lcd.print(sec); lcd.setCursor(3, 1); lcd.print(0); } else { lcd.setCursor(3, 1); lcd.print(sec); } if (sec == 60)//like in 'miliseconds' { mins++; minutes(); sec = 0; lcd.setCursor(3, 1); lcd.print("00"); //print "00" because after every 60 seconds ,there should be counting from the beginning } } void minutes() { if (mins < 10)//same as in 'seconds' { lcd.setCursor(1, 1); lcd.print(mins); lcd.setCursor(0, 1); lcd.print(0); } else { lcd.setCursor(0, 1); lcd.print(mins); } } Mam nadzieję,że na artykuł o DC będziemy krócej czekać niż na wyświetlacz
  13. Treker Powiem tak, niezależnie od tego, czy coś uda się Wam wypuścić razem jakieś kursy, czy też nie, to i tak jestem zainteresowany wszystkimi Natomiast tak sobie pomyślałem, że skoro na początek września jest już zaplanowany STM32 (swoją drogą, mógłbyś uchylić rąbka tajemnicy jaki konkretnie? Bo mam dostęp do STM32F4-Discovery, może mógłby się przydać ), to może kontynuację Arduino wraz z początkiem RPI dałoby się puścić razem? (przynajmniej zapowiedzi kursów, żeby właśnie nabyć wówczas jedną przesyłką potrzebne elementy ) Natomiast jeśli chodzi o kontynuację kursu elektroniki, to raczej , tak mi się wydaje, większość ma jakikolwiek sklep elektroniczny w pobliżu miejsca zamieszkania, a jak nie w pobliżu, to na pewno jest większa szansa, że w niedalekiej odległości trafi się takowy elektroniczny, niż sklep z Arduino czy RPI Ale to tylko tak mi przyszło do głowy, może macie inne, lepsze pomysły
  14. Łooo jeny, tyle radości w jeden wieczór! Bardzo bardzo dobre wieści tutaj czytam Nic tylko uzbroić się w cierpliwość i życzyć powodzenia! I przy okazji mam pytanie, bo pewnie będą jakieś zestawy do nabycia w botlandzie, może dałoby się wypuścić chociaż jakieś dwa kursy, albo ich zerowe odcinki w bardzo podobnym czasie, żeby przyoszczędzić trochę na wysyłce? Bo jednak same elementy kosztują,a pieniądze na drzewach nie rosną Aczkolwiek i tak super,że Wam się chce, jesteście najlepsi!
  15. @Treker, teraz to mam nadzieję, nie zacząć myśleć o publikacji, tylko po prostu opublikować
  16. Dodaję swoje wersje zadań domowych, program jak i komentarze są w po angielsku, choć zdaję sobie sprawę, że na pewno są błędy w razie czego, proszę o uwagi odnośnie samych kodów, jak i również językowych błędów 6.1 /* Program reads informations from two photoresistors and potentiometer, then it sends them once (after pressing button) with values and number of button's pressings. */ #define photo1 A3 //1st photoresistor #define photo2 A4 //2nd photoresistor #define pot A5 //potentiometer #define button 7 //button int ph1=0; //value on 1st photoresistor int ph2=0; //value on 2nd photoresistor int potVal=0; //value on potentiometer int pressCounter=0; //button's pressings counter boolean buttonState,tempState; //boolean variables to help counting button's pressings void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(button, INPUT_PULLUP); } void loop() { // put your main code here, to run repeatedly: ph1=analogRead(photo1); ph2=analogRead(photo2); potVal=analogRead(pot); buttonState=digitalRead(button); if(buttonState!=lastState) // if current button state differs from last button state // it means, that button was pressed or was released { if(buttonState==LOW)// if button was pressed { pressCounter++; //increase the counter and write values Serial.print("Number of pressings: "); Serial.print(pressCounter); Serial.print("\t"); Serial.print("Value on "); Serial.print("photoresistor 1: "); Serial.print(ph1); Serial.print("\t"); Serial.print("photoresistor 2: \t"); Serial.print(ph2); Serial.print("\t"); Serial.print("potentiometer: \t"); Serial.print(potVal); Serial.print("\n"); delay(50); // delay to avoid interferences } } lastState=buttonState; //save button state } Jeśli chodzi o zadanie 6.2 to domyślam się, że chodzi o to: (jest to nieco inna wersja, ponieważ po przekręceniu potencjometru w odpowiednie miejsce dioda mruga, a nie świeci ) /* Program makes LED blinking, which is indicated by position of the potentiometer. Value on potentiometer in bytes is diveded into 5 ranges. */ #define green1 2 #define green2 3 #define yellow 4 #define red1 5 #define red2 6 int readValue=0; //value on potentiometer int convertValue=0; //value after converting readValue void setup() { // put your setup code here, to run once: for(i=2;i<=6;i++) //set pins as outputs and set low state { pinMode(i,OUTPUT); digitalWrite(i,LOW); } void loop() { // put your main code here, to run repeatedly: readValue=analogRead(A5); //read value from potentiometer convertValue=map(readValue,0,1023,1,5); // convert it into 5 ranges switch(convertValue) //choose between LEDs, which one should blinks { case 1: { digitalWrite(green2,LOW); digitalWrite(yellow,LOW); digitalWrite(red1,LOW); digitalWrite(red2,LOW); digitalWrite(green1,HIGH); delay(100); digitalWrite(green1,LOW); delay(100); break; } case 2: { digitalWrite(green1,LOW); digitalWrite(yellow,LOW); digitalWrite(red1,LOW); digitalWrite(red2,LOW); digitalWrite(green2,HIGH); delay(100); digitalWrite(green2,LOW); delay(100); break; } case 3: { digitalWrite(green1,LOW); digitalWrite(green2,LOW); digitalWrite(red1,LOW); digitalWrite(red2,LOW); digitalWrite(yellow,HIGH); delay(100); digitalWrite(yellow,LOW); delay(100); break; } case 4: { digitalWrite(green1,LOW); digitalWrite(green2,LOW); digitalWrite(yellow,LOW); digitalWrite(red2,LOW); digitalWrite(red1,HIGH); delay(100); digitalWrite(red1,LOW); delay(100); break; } case 5: { digitalWrite(green1,LOW); digitalWrite(green2,LOW); digitalWrite(yellow,LOW); digitalWrite(red1,LOW); digitalWrite(red2,HIGH); delay(100); digitalWrite(red2,LOW); break; } default: { digitalWrite(green1,LOW); digitalWrite(green2,LOW); digitalWrite(yellow,LOW); digitalWrite(red1,LOW); digitalWrite(red2,LOW); break; } } delay(50); } zadanie 6.3 Jeśli chodzi o mechanizm kalibracji, to nie wiem, czy dobrze zrozumiałem, ale chodziło o to, żeby znaleźć wartość minimalną i maksymalną światłości? Jeśli tak, to taki kawałek kodu napisałem: int maxVal=0,minVal=0,temp=0,pos=0; void setup() { // put your setup code here, to run once: Serial.begin(9600); maxVal=analogRead(A5); minVal=analogRead(A5); } void maxSearching() { temp=analogRead(A5); /* Serial.print("temp value: "); Serial.print(temp); Serial.print("\t max value: "); Serial.print(maxVal); Serial.print("\n"); */ if(temp>maxVal) { maxVal=temp; } } void minSearching() { temp=analogRead(A5); /* Serial.print("temp value: "); Serial.print(temp); Serial.print("\t min value: "); Serial.print(minVal); Serial.print("\n"); */ if(temp<minVal) { minVal=temp; } } void loop() { // put your main code here, to run repeatedly: maxSearching(); minSearching(); pos=map(temp,minVal,maxVal,0,179); /* The rest of photometer program is separete */ delay(3000); } Nie wiem, czy napisane funkcje są poprawnie napisane, natomiast szukanie minimum i maksimum światłości w takiej postaci działa, a czy tak miało być to nie wiem 6.4 Proszę filmik (wybaczcie, że jest tak dziwnie położony ) Wszyscy czekamy na jak najszybsze opublikowanie kolejnej lekcji, szczególnie mnie osobiście interesują silniki DC!
  17. @Treker kod 4.4 zaznaczam, że zdaję sobie sprawę, że komentarze po angielsku raczej nie stoją na zbyt wysokim poziomie, natomiast postanowiłem komentować i nazywać zmienne właśnie w tym języku, aby trenować , bo ja wiem, informatyczny (ewentualnie techniczny angielski), a nuż się kiedyś przyda. Warunek, a o który pisałem jest na samym dole zakomentowany #define blue 8 int readValue=0; // value of voltage in bits float realVoltage=0; //real voltage on A5 int thresholdValue=0; //threshold value for potentiometer boolean temp = false; //variable to check if voltage on voltage divider was changed //float temp1 = 0; void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(blue,OUTPUT); digitalWrite(blue, LOW); } void loop() { // put your main code here, to run repeatedly: readValue = analogRead(A5); //read value of voltage(in bits) on voltage divider output realVoltage = readValue*(5.0/1023.0);//true voltage value thresholdValue = analogRead(A4); if(readValue<thresholdValue)//if read value is lower than threshold value //switch blue led on { digitalWrite(blue,HIGH); if(temp == false)//if temp is false send value once { Serial.print("\nvalue of voltage on voltage divider:\n"); Serial.print(realVoltage); Serial.print("\nvalue of threshold voltage\n"); Serial.print(thresholdValue*(5.0/1023.0)); temp = true;//make temp true to prevent from sending value more times } } else//if read value is greater don't do anything { temp = false; digitalWrite(blue,LOW); } /* if( (temp1 < thresholdValue*(5.0/1023.0) + 0.01 ) && (temp1 > thresholdValue*(5.0/1023.0) - 0.01 ) ) { Serial.println(thresholdValue*(5.0/1023.0)); delay(250); } temp1= (thresholdValue*(5.0/1023.0)); */ } kod 4.5 Chciałem zrobić dodatkowe zabezpieczenie przed zbyt szybko wpisaną liczbą(zmienna temp, komentarze są), ale coś nie wychodzi, może po prostu się nie da? Oczywiście wiem, że nie jest to optymalnie napisane, ale działa //declaration of directives #define red 4 #define yellow 5 #define green 6 #define button 13 int potentiometerValue=0; int i=1; String number =""; int int_number=0; int attempts_number; boolean start = true; //start variable boolean temp = false;//temporary variable to prevent from reading datas before it can be read //for example before pressing a button void setup() { // put your setup code here, to run once: Serial.begin(9600); //pins as outputs pinMode(red,OUTPUT); pinMode(yellow,OUTPUT); pinMode(green,OUTPUT); pinMode(button,INPUT_PULLUP);//buton pin //switch leds off digitalWrite(red,LOW); digitalWrite(yellow,LOW); digitalWrite(green,LOW); } void loop() { // put your main code here, to run repeatedly: if(start == true) { temp=false;//make programme incapable of reading number before it is desired digitalWrite(red,LOW); digitalWrite(yellow,LOW); digitalWrite(green,LOW); attempts_number=3; Serial.println("The game started!"); Serial.println("Move potentiometer and press button!"); while(digitalRead(button) == HIGH){}//void loop to wait as long as button isn't pressed while(digitalRead(button) == LOW)//if button is pressed { digitalWrite(red,LOW); digitalWrite(yellow,LOW); digitalWrite(green,LOW); } while(attempts_number >0) { potentiometerValue=analogRead(A5);//read value of potentiometer Serial.println("give me a number!(from 0 to 1023)"); while(Serial.available() == 0)//wait for the number from user { temp=true; }//now user is capable of writing the number if((Serial.available() > 0) && (temp=true))//if user gave the number { number = Serial.readStringUntil('\n'); Serial.println("your number: "); Serial.println(number);//print number on the screen int_number = number.toInt();//convert string to int //victory condition if((int_number > potentiometerValue - 50) && (int_number < potentiometerValue + 50)) { digitalWrite(green,HIGH); digitalWrite(red,LOW); digitalWrite(yellow,LOW); Serial.println("Congratulations! You won!"); attempts_number = 0; } else //if number is outside of potentiometer value (+/- 50) { if(attempts_number>1)//if user has more than 1 attempt { attempts_number-=1;//decrease attempts by 1 digitalWrite(yellow,HIGH); digitalWrite(red,LOW); digitalWrite(green, LOW); Serial.println("You have "); Serial.print(attempts_number); Serial.print(" attempt(s)!\n"); } else//if user has no attempts { digitalWrite(red,HIGH); digitalWrite(yellow,LOW); digitalWrite(green,LOW); Serial.println("Unfortunately you lost!"); attempts_number=0; } } } } start=false;//at the end of "if" make start false to be able to ask user if he wants play again } if(start==false) { Serial.println("Do you want play once again? (if yes press button)");//ask } while(digitalRead(button) == HIGH)//if button isn't pressed new game is impossible { start=false; } if(digitalRead(button) == LOW)//if button is pressed new game is possible { start = true; delay(2000); // i=0; } } kod 4.6 nie do końca jestem pewny czy o to chodziło //declaration of directives #define red1 5 #define yellow 6 #define red2 7 int first=0;//voltage output on first photoresistor int second=0;//voltage output on second photoresistor void setup() { // put your setup code here, to run once: pinMode(red1,OUTPUT); pinMode(yellow,OUTPUT); pinMode(red2,OUTPUT); Serial.begin(9600); digitalWrite(red1,LOW); digitalWrite(yellow,LOW); digitalWrite(red2,LOW); } void loop() { // put your main code here, to run repeatedly: //read voltage value on photoresistors first = analogRead(A5); second = analogRead(A0); if(first > second) { digitalWrite(red1,HIGH); digitalWrite(yellow,LOW); digitalWrite(red2,LOW); Serial.print("\nfirst voltage: "); Serial.print(first*(5.0/1023.0)); Serial.print("\nsecond voltage: "); Serial.print(second*(5.0/1023.0)); delay(500); } else if(first == second) { digitalWrite(red1,LOW); digitalWrite(yellow,HIGH); digitalWrite(red2,LOW); Serial.print("\nfirst voltage: "); Serial.print(first*(5.0/1023.0)); Serial.print("\nsecond voltage: "); Serial.print(second*(5.0/1023.0)); delay(500); } else if(first < second) { digitalWrite(red1,LOW); digitalWrite(yellow,LOW); digitalWrite(red2,HIGH); Serial.print("\nfirst voltage: "); Serial.print(first*(5.0/1023.0)); Serial.print("\nsecond voltage: "); Serial.print(second*(5.0/1023.0)); delay(500); } } jeśli ktoś przebrnie, bardzo chętnie wysłucham krytycznych uwag włącznie z błędnym użyciem języka angielskiego I oczywiście, że czekamy na nowy odcinek!
  18. Pytanie mam do zadania 4.4, wpadłem na pomysł, żeby napisać kod w taki sposób, że będzie wyświetlana wartość napięcia wyjściowego oraz progu wtedy, gdy jedna z nich się zmieni. Użyłem pomocniczej zmiennej temp, do której przypisałem wartość napięcia tuż przed końcem pętli void loop i kombinowałem z różnymi warunkami w ifach, gdzie chciałem ją jakoś porównać z bieżącą wartością napięcia , i zauważyłem, że wartość wyświetla się zawsze, niezależnie od warunku. Czy to dlatego, że wartość np. rezystancji potencjometru zmienia się cały czas, ze względu na różne zakłócenia czy coś takiego?
  19. Elvis, dzięki, to co napisałeś jest bardzo logiczne, jakoś przeoczyłem tę informację oraz działanie średnika w tym przypadku, dzięki bardzo!
  20. No okej, dzięki bardzo, tylko w takim razie, to, że instrukcje poniżej są w klamrach nie będzie mu jakoś przeszkadzało? Albo raczej, skoro działa, to czemu mu to nie przeszkadza?
  21. Hm, faktycznie, dzięki a czemu to tak działa w takim razie? Co ten średnik takiego robi?
  22. do programu z dwoma diodami dorobiłem sobie trzecią-niebieską. Jednakże program nie działa tak jak powinien, tzn. jak wpiszę greenled albo redled, to po załączeniu na 3s diod zielonej lub czerwonej włącza się dioda niebieska, ktoś wie czemu tak się dzieje? tutaj kod: String receivedData = ""; //empty string //define leds #define redled 2 #define greenled 3 #define blueled 4 void setup() { // put your setup code here, to run once: Serial.begin(9600); //start communication //set pins as outputs pinMode (redled,OUTPUT); pinMode (greenled,OUTPUT); pinMode(blueled,OUTPUT); //switch off leds digitalWrite (redled,LOW); digitalWrite(greenled,LOW); digitalWrite(blueled,LOW); } void loop() { // put your main code here, to run repeatedly: if(Serial.available() > 0)//check if data was received { receivedData = Serial.readStringUntil('\n');//if yes, read it to EOL //and save in variable receivedData if(receivedData == "greenled")//if you wrote "greenled" { digitalWrite(blueled,LOW); digitalWrite(redled,LOW); digitalWrite(greenled,HIGH); delay(3000); digitalWrite(greenled,LOW); } else if(receivedData == "redled")//if you wrote "ledred" { digitalWrite(blueled,LOW); digitalWrite(greenled,LOW); digitalWrite(redled,HIGH); delay(3000); digitalWrite(redled,LOW); } else if(receivedData == "blueled"); { digitalWrite(redled,LOW); digitalWrite(greenled,LOW); digitalWrite(blueled,HIGH); delay(3000); digitalWrite(blueled,LOW); } } } jakoś bardzo specjalnie to on się nie różni, właściwie oprócz dodanie "else if" i trzeciej diody to to jest to samo co w kursie, jestem zdziwiony działaniem.
  23. igor, while(digitalRead(7)==HIGH) oznacza tyle, że jeśli przycisk nie jest wciśnięty, to program sobie biega w tej pętli tak długo dopóki, dopóty nie wciśniesz go z powrotem, jak już go naciśniesz, to pętlę omija, bo jej warunek nie jest spełniony, innymi słowami trzymając przycisk wciśnięty cały czas, pętle while w tym kodzie są po prostu omijane. Chyba, że się mylę, to niech mnie ktoś poprawi.
  24. Cześć wszystkim, mam pewien problem ze swoim światłolubem. Mianowicie chodzi o to, że ucząc się dopiero lutowania, postanowiłem złożyć układ na płytce stykowej. Przerobiłem mikroserwa wg instrukcji z forum, mostek H wcisnąłem w podstawkę no i włożyłem ją do płytki, wszystko podłączyłem i pomimo oświetlenia fototranzystorów nie było żadnego efektu w postaci działających mikroserw. Układ sprawdzałem multimetrem i pojawia się napięcie na fototranzystorach oraz na rezystorach. Sprawdziłem też działanie mikroserw z użyciem mostka H, ale bez fototranzystorów i bez rezystorów - działały ciągle, natomiast po dołożeniu fototranzystorów układ już nie działa. Sprawdzałem fototranzystory, podłączając diodę niebieską, opornik i fototranzystor szeregowo ze źródłem zasilania no i po oświetlaniu dioda świeciła. Pytanie, co może być nie tak? Czy latarka za słaba, bo mikroserwa potrzebują większego prądu niż dioda? Bo już nie mam pomysłów. EDIT: Złożyłem układ wg tego schematu ktoś ma wiedzę, czemu schemat wklejony działa, a ten z tego tematu nie? Jest różnica w podpięciu rezystora, czy to dlatego? Jeśli nawet, to u innych działało, u mnie nie, albo ja robię coś nie tak.. Chciałbym dodać zdjęcie płytki, ale nie użyłem zworek tylko normalne przewody męsko męskie, więc nie wiem, czy ktoś coś by dojrzał
  25. Owszem, o to, a także o to: "Z Wikipedii: "Stan nasycenia, w którym prąd bazy jest na tyle duży, że obwód kolektora nie jest w stanie dostarczyć prądu β razy większego. Napięcie kolektor-emiter spada wtedy do niewielkiej wielkości." Czy w takim razie wartość mniejsza niż 1mA to jest duża wartość dla bazy? Albo to ja czegoś nie rozumiem "
×
×
  • Utwórz nowe...