ethanak 10 listopada Udostępnij 10 listopada @orb777 mam przykre doświadczenia z tym czujnikiem i nie polecałbym. Ale czemu nie mikrokrańcówka z przedłużoną wajchą? Jak dobrze wyregulujesz do na kroplę deszczu zareaguje... 1 Link do komentarza Share on other sites More sharing options...
AlanB 10 listopada Autor tematu Udostępnij 10 listopada @Santiago @orb777 Tak myślę że nie ma konieczności zaprzątac sobie głowy z tą blokadą bo faktycznie nie będzie potrzebna 🙂 jakoś udało mi się ogarnąć te blaszki chociaż kieliszek lekko się buja , myślałem właśnie nad laserem tylko nie zbadałem jeszcze jakby to działało z kieliszkiem czy by nie było zakłamanego wyniku itp. znalazłem czujnik na przedmioty przeźroczyste ale koszt 300zl sztuka co mija się z celem 😁 1 Link do komentarza Share on other sites More sharing options...
orb777 10 listopada Udostępnij 10 listopada @ethanak , padło szybko? Rozpakowałem z woreczka dzisiaj. Link do komentarza Share on other sites More sharing options...
ethanak 10 listopada Udostępnij 10 listopada @orb777 po prostu to coś trzeba oprogramować, sprawdzać różnice między oświetlonym a nieoświetlonym, ogólnie trochę roboty jest. Nie wystarczy pomiar napięcia na fototranzystorze. W sumie biorąc pod uwagę czas kalibracji taniej wychodzi ToF. A biorąc pod uwagę kod który tu widziałem raczej nie ma szans na -nawet nie napisanie, ale zrozumienie jak to działa. Inna sprawa, że ani tsop ani tof się do tego nie nadaje. Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
orb777 10 listopada Udostępnij 10 listopada (edytowany) @ethanak , czaję. Edytowano 10 listopada przez orb777 Link do komentarza Share on other sites More sharing options...
AlanB 15 listopada Autor tematu Udostępnij 15 listopada @SantiagoUdało mi się w końcu po poszukiwaniach odnaleźć odpowiedni przycisk z blaszką aby nie podnosił kieliszka jest to przełącznik krańcowy 3p z dźwignią i śmiga aż miło. Nalewak już w 90% złożony , jedna myśl mi chodzi po głowie , bo gdy tak sobie testowałem już razem z wyświetlaczem na którym widać ilości nalanych kieliszków to tak pomyślałem czy jest możliwość aby podczas nie nalewania na wyświetlaczu zmieniały się wyniki poszczególnych kieliszków czyli , najpierw wyświetli się wynik 1-ego kieliszka po 2 sekundach wynik drugiego kieliszka itd coś na zasadzie takiego wygaszacza gdy nalewak akurat nie nalewa, bo tak aby zobaczyć ile się już wypiło to trzeba i tak polać i mieć szybkie oko aby zobaczyć co po paru głębszych może być już kłopotliwe 🙂 Link do komentarza Share on other sites More sharing options...
Santiago 16 listopada Udostępnij 16 listopada @AlanB Wyobraź sobie , że myślałem nad tym, jak również myślałem nad krańcówką. Mam takie dwie, ale nie chciało mi się testować. Jutro się napisze, dzisiaj syn ma urodziny i nie mam czasu na zabawę. Szkoda, że nie wstawiasz zdjęć z Nalewaka i nie opisujesz problemów jakie napotykasz. Zawsze może to się przydać innym. Jak również schemat połączeń zasilania itp. Rozumiem , że chcesz zdążyć przed Nowym Rokiem, aby zaproszeni byli zdumieni ? Pochwalam to, nie ma to jak zobaczyć zaskoczenie na twarzach innych ludzi :). Myślałem również nad 'upiciem' Nalewaka, czyli po nalaniu wielu kieliszków zaczął wykonywać dziwne ruchy ..., albo po stwierdzeniu , że osoba x wypiła już 10 to odmowa dostępu i odpowiedni komunikat. No ale to na wersję Nalewaka 2 . Link do komentarza Share on other sites More sharing options...
AlanB 16 listopada Autor tematu Udostępnij 16 listopada @Santiago niestety film z działania nalewaka nie mogę tutaj wrzucić bo jest to za duży plik więc dopiero jak wrzucę na YouTube lub tym podobnym to udostepnie link. Schemat podłączenia również ogarnę aby ładnie wyglądało bo na razie tylko ołówkiem nabazgrane , że tylko ja się połapię co i jak 🤣 Dla syna wszystkiego najlepszego ode mnie z okazji urodzin . Wracając jeszcze do tego liczenia kieliszkow to 0.04 to oznacza że kieliszkiem ma 40ml ? Czyli gdy miałbym np kieliszki 28ml to muszę ustawić 0.28 ? Link do komentarza Share on other sites More sharing options...
Santiago 16 listopada Udostępnij 16 listopada 28ml to 0,028. Z filmami mam ten sam problem. Jeżeli chodzi o schemat to sam szukam jakiegoś ładnego edytora (i prostego - na moje potrzeby). Co do syna to jak wczoraj zażartowałem , że kupiłem mu na prezent arduino to nie chciałbyś widzieć wyrazu jego twarzy.... ma 16 , ale on jest humanistą - mówi w innych językach, zna geopolitykę, historię itp. Dwa lata temu jak książka przyszła to patrzę się i mówię - Przecież to po angielsku, a syn na to 'No i ...' Powinienem go przeprosić z głupie pytania 🙂 Link do komentarza Share on other sites More sharing options...
AlanB 16 listopada Autor tematu Udostępnij 16 listopada @Santiago no chciałbym zobaczyć ten wyraz twarzy🤣🤣, czyli jeśli mam kieliszki 28ml to muszę w kodzie : lcd.print(sumaZimprezy*0.04) i tutaj wstawić zamiast 0.04 to 0.028 ? Link do komentarza Share on other sites More sharing options...
AlanB 16 listopada Autor tematu Udostępnij 16 listopada tak powoli nabiera wyglądu 🤣 Link do komentarza Share on other sites More sharing options...
Santiago 16 listopada Udostępnij 16 listopada @AlanB No wygląda ciekawie, tak jak ja nie masz dobrze ustawionego kontrastu na wyświetlaczu. Ja tego nie robię , ponieważ to i tak rozbiorę, tobie zalecam podpiąć odpowiedni rezystor, jak również myślałem abyś na wszelki wypadek na każdy przycisk zrobił filtr , który to będzie niwelował drgania styków. Na Forbocie jest to dobrze opisane. Interesuje mnie strona elektryczna, oraz jak robisz te części. Drukarka 3D ? Chociaż patrząc lepiej dostrzegam sprzęty znalezione w piwnicy 🙂 Link do komentarza Share on other sites More sharing options...
ethanak 16 listopada Udostępnij 16 listopada Ja bym dał jakąś folię na te krańcówki - o ile przypadkowe kapnięcie wódki czystej jest nawet wskazane bo przeczyści styki, o tyle po likierze porzeczkowym konieczne będzie rozebranie ustrojstwa i wymiana krańcówki. 1 Link do komentarza Share on other sites More sharing options...
Santiago 17 listopada Udostępnij 17 listopada @AlanB No wygląda ciekawie, tak jak ja nie masz dobrze ustawionego kontrastu na wyświetlaczu. Ja tego nie robię , ponieważ to i tak rozbiorę, tobie zalecam podpiąć odpowiedni rezystor, jak również myślałem abyś na wszelki wypadek na każdy przycisk zrobił filtr , który to będzie niwelował drgania styków. Na Forbocie jest to dobrze opisane. Interesuje mnie strona elektryczna, oraz jak robisz te części. Drukarka 3D ? Chociaż patrząc lepiej dostrzegam sprzęty znalezione w piwnicy 🙂 Link do komentarza Share on other sites More sharing options...
Santiago 17 listopada Udostępnij 17 listopada #include <Servo.h> // biblioteka dla silnika serwo #include <LiquidCrystal.h> // biblioteka wyswietlacza LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // jak podlaczony jest wyswietlacz Servo serwomechanizm; bool tPelny[7]; // warunek czy kieliszek zostal napelniony int tOsoby[7]; // tablica dla kazdej osoby od 0 do 6 - takie sa tablice w c, ilosc na osobe const int tPozycja[7] {0, 10, 44, 78, 112, 146, 180}; // pozycja dla serwa long sumaZimprezy = 0; // ile w sumie na imprezie bylo nalanych int czasStary, czasNowy; // do wyswietlacza - zmiana napisow bool flaga; int licznik; // delay miesza milisekundy... musze zrobic prowizorke void setup() { pinMode(13, OUTPUT); // przekaznik pinMode(A0, INPUT_PULLUP); pinMode(A1, INPUT_PULLUP); pinMode(A2, INPUT_PULLUP); pinMode(A3, INPUT_PULLUP); pinMode(A4, INPUT_PULLUP); pinMode(A5, INPUT_PULLUP); serwomechanizm.attach(12); serwomechanizm.write(0); lcd.begin(12,2); lcd.print(" Napijemy sie ?"); delay(3000); lcd.setCursor(0,1); lcd.print("Postaw kielich !"); delay(3000); } void loop() { fCzujniki(); // funkcja ktora sprawdza stan czujnikow if (millis() - czasStary > 5500) {czasStary = millis(); licznik++;} if (licznik > 3) {flaga = !flaga; licznik = 0;} if (flaga == 0) { fWyswietlacz1(0);} else {fWyswietlacz1(1);} } void fCzujniki() { if (digitalRead(A0) == LOW) {delay(100); if (digitalRead(A0) == 0) { fUstawNalej(1);} } else {tPelny[1] = false;} if (digitalRead(A1) == LOW) {delay(100); if (digitalRead(A1) == 0) { fUstawNalej(2);} } else {tPelny[2] = false;} if (digitalRead(A2) == LOW) {delay(100); if (digitalRead(A2) == 0) { fUstawNalej(3);} } else {tPelny[3] = false;} if (digitalRead(A3) == LOW) {delay(100); if (digitalRead(A3) == 0) { fUstawNalej(4);} } else {tPelny[4] = false;} if (digitalRead(A4) == LOW) {delay(100); if (digitalRead(A4) == 0) { fUstawNalej(5);} } else {tPelny[5] = false;} if (digitalRead(A5) == LOW) {delay(100); if (digitalRead(A5) == 0) { fUstawNalej(6);} } else {tPelny[6] = false;} // sprawdzanie dwa razy aby wyeliminowac drgania stykow delay(1000); serwomechanizm.write(tPozycja[0]); // wracaj do pozycji poczatkowej } void fUstawNalej(int poz) // sprawdz czy kieliszek pusty, jesli tak to nalewaj, zaznacz jako pelny { if (tPelny[poz] == false) {++ tOsoby[poz]; ++ sumaZimprezy; fWyswietlacz(poz); delay(110); serwomechanizm.write(tPozycja[poz]);delay(2000); digitalWrite(13, HIGH); delay(3000); digitalWrite(13, LOW); tPelny[poz] = true; } } void fWyswietlacz(int poz) { // char numer; numer = tOsoby[poz]; lcd.clear(); lcd.setCursor(0,0); lcd.print("Nalewam do -"); lcd.setCursor(14,0); lcd.print(poz); lcd.setCursor(0,1); lcd.print("To nalanie -"); lcd.setCursor(14,1); lcd.print(tOsoby[poz]); } void fWyswietlacz1(int co) { if (co == 0) { lcd.clear(); lcd.setCursor(0,0); lcd.print(" ZDROWIE !"); lcd.setCursor(0,1); lcd.print("Suma - "); lcd.setCursor(7,1); lcd.print(sumaZimprezy); lcd.setCursor(10,1); lcd.print(sumaZimprezy*0.04); // podanie w litrach o ile kieliszki sa 0.4 lcd.setCursor(15,1); lcd.print("l"); } if (co == 1) { lcd.clear(); lcd.setCursor(0,0); lcd.print("1-"); lcd.setCursor(2,0); lcd.print(tOsoby[1]); lcd.setCursor(6,0); lcd.print("2-"); lcd.setCursor(8,0); lcd.print(tOsoby[2]); lcd.setCursor(12,0); lcd.print("3-"); lcd.setCursor(14,0); lcd.print(tOsoby[3]); lcd.setCursor(0,1); lcd.print("4-"); lcd.setCursor(2,1); lcd.print(tOsoby[4]); lcd.setCursor(6,1); lcd.print("5-"); lcd.setCursor(8,1); lcd.print(tOsoby[5]); lcd.setCursor(12,1); lcd.print("6-"); lcd.setCursor(14,1); lcd.print(tOsoby[6]); } } Już wcześniej czytałem , że delaje zakłócają millis((), no ale teraz to wyszło dlatego taki dziwny licznik dodałem . Zobacz jak działa wyświetlanie przed postawieniem kieliszka, a następnie jak już nalewa. Myślę jednak , że nie ma to tutaj żadnego znaczenia. Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »