ethanak Listopad 10, 2024 Udostępnij Listopad 10, 2024 @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
AlanB Listopad 10, 2024 Autor tematu Udostępnij Listopad 10, 2024 @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
orb777 Listopad 10, 2024 Udostępnij Listopad 10, 2024 @ethanak , padło szybko? Rozpakowałem z woreczka dzisiaj.
ethanak Listopad 10, 2024 Udostępnij Listopad 10, 2024 @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.
orb777 Listopad 10, 2024 Udostępnij Listopad 10, 2024 (edytowany) @ethanak , czaję. Edytowano Listopad 10, 2024 przez orb777
AlanB Listopad 15, 2024 Autor tematu Udostępnij Listopad 15, 2024 @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
Santiago Listopad 16, 2024 Udostępnij Listopad 16, 2024 @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 .
AlanB Listopad 16, 2024 Autor tematu Udostępnij Listopad 16, 2024 @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 ?
Santiago Listopad 16, 2024 Udostępnij Listopad 16, 2024 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
AlanB Listopad 16, 2024 Autor tematu Udostępnij Listopad 16, 2024 @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 ?
Santiago Listopad 16, 2024 Udostępnij Listopad 16, 2024 @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
ethanak Listopad 16, 2024 Udostępnij Listopad 16, 2024 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
Santiago Listopad 17, 2024 Udostępnij Listopad 17, 2024 @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
Santiago Listopad 17, 2024 Udostępnij Listopad 17, 2024 #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.
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ę »