Skocz do zawartości

Programowanie serwomechanizmu do poszczególnych przycisków


AlanB

Pomocna odpowiedź

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

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

@AlanB Jeżeli będę to budował to chcę zrobić to na Atmega8 (mam jakieś 2 stare sztuki), muszę kupić programator (nie będę się bawił, aby programować przez Arduino). Tutaj po prostu szkoda wkładać Arduino. Nie zapominaj, że ma stabilizator oraz dodatkowy układ i diodę , które to niepotrzebnie pobierają prąd.

Następnie należałoby powyłączać w Atmedze8 niepotrzebne podzespoły, które to sobie działają pomimo , że z nich nie korzystasz. Oczywiście zasilanie z kabla (pomimo tego oszczędność wskazana i wbrew pozorom spora).

Dla własnej satysfakcji uczę się języka c i dlatego chciałbym zoptymalizować kod pod względem zajęcia pamięci. 

Być może zrezygnuję z delajów (oj człowieku nieco mi ich wisisz...- znaczy Nalewak), na rzecz jakiejś tam funkcji bazującej na : millis, albo przerwaniach od zegarów. 

No i co jest dla mnie najgorsze to część mechaniczna... Zawsze czytałem , uczyłem się , poznawałam, ale nigdy nie miałem zdolności manualnych....

No i musiałbym zrobić spis tego co wykorzystałeś , łącznie z tą pompką. Jak na nią wpadłeś ?

Link do komentarza
Share on other sites

@Santiago ja również dopiero się uczę na Arduino też to dla mnie nowość i czarna magia .... Co do pompki to już kiedyś właśnie przeglądając to forum podpowiadali koledzy w innym projekcie że takie "cuda" istnieją moja ma wydajność 1l na 4min także wychodzi mi że aby malało kieliszek to pompka działa 6 sekund 🙂 , ja to znowu bardziej wolę prace manualne niż programowanie 🙂 a styczności z ATmega8 to wgl nie miałem i nie wiem co i jak 🤣 🤣 

  • Lubię! 1
Link do komentarza
Share on other sites

@Santiago Witam , po nieco dłuższej przerwie , i po ciągłym , weekendowym testowaniu nalewaczka , zrodził się pomysł aby dodać możliwość ustawienia ilości ml za pomocą potencjometru  (25ml, 30ml itd) , chciałem dodać kod jak w projekcie wyżej który udostępnił @Sylba ale niestety nie wychodzi mi to  ...  A życie pokazało , że przydałaby się taka funkcja 

Link do komentarza
Share on other sites

@Santiago spróbowałem coś stworzyć przy pomocy AI Black box i coś takiego stworzyła sztuczna inteligencja nada się coś z tego ?

#include <LiquidCrystal.h>
// Ustawienia dla wyświetlacza LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// Definicje pinów
const int potPin = A0; // Pin potencjometru
const int pumpPin = 9; // Pin do sterowania pompą
// Ustawienia pojemności
const int pojemnosci[] = {20, 25, 30}; // Pojemności w ml
const int liczbaPojemnosci = sizeof(pojemnosci) / sizeof(pojemnosci[0]);
void setup() {
  lcd.begin(16, 2);
  pinMode(pumpPin, OUTPUT);
  digitalWrite(pumpPin, LOW); // Wyłącz pompę na początku
}
void loop() {
  int potValue = analogRead(potPin); // Odczyt wartości z potencjometru
  int index = map(potValue, 0, 1023, 0, liczbaPojemnosci - 1); // Mapowanie wartości
  // Wyświetlanie aktualnej pojemności
  lcd.clear();
  lcd.print("Pojemność: ");
  lcd.print(pojemnosci[index]);
  lcd.print(" ml");
  // Włączanie/wyłączanie pompy
  if (digitalRead(pumpPin) == HIGH) {
    delay(pojemnosci[index] * 1000); // Napełnianie przez określony czas (przykładowo 1ml na sekundę)
    digitalWrite(pumpPin, LOW); // Wyłącz pompę
  }
  // Możesz dodać przycisk do uruchamiania pompy
  // if (digitalRead(buttonPin) == HIGH) {
  //   digitalWrite(pumpPin, HIGH); // Włącz pompę
  // }
  delay(100); // Krótkie opóźnienie
}

 

Link do komentarza
Share on other sites

7 godzin temu, AlanB napisał:

nada się coś z tego

Każ botowi napisać ten sam program za pomocą funkcji millis (konkretnie nie chcesz mieć delaya w pętli głównej), ciekawe jak sobie poradzi 

Link do komentarza
Share on other sites

Jak już wspomniałem, do piątku nie ma mnie :), jednak już dzisiaj napisałem w głowie kod o który ci chodzi (z uwzględnieniem licznika nalewań) 

Muszę jednak wiedzieć jakie są wartości które Ciebie interesują , czy to co było napisane wystarczy (pojemnosci[] = {20, 25, 30}) , wydaje mi się to nieco mało i zbyt zbliżone wartości.  Ja bym rozszerzył zakres przynajmniej do 50 ml., albo nawet w skrajnych wypadkach do 100m.

Co do kodu wygenerowanego to w tym wypadku niepraktyczny, ale to nie problem. 

W sobotę napiszę kod oraz jaki zwykle prozaiczny 'błąd' popełniłem - wiedząc o tym , że może to być w przypadku zmian kłopotliwe :), tak jak wiedząc o drganiach styków - spokojnie sobie to lekceważyłem ... 🙂

Link do komentarza
Share on other sites

8 godzin temu, _LM_ napisał:

Każ botowi napisać ten sam program za pomocą funkcji millis (konkretnie nie chcesz mieć delaya w pętli głównej), ciekawe jak sobie poradzi 

Jest nawet na forbotach wyjaśnione: https://forbot.pl/blog/kurs-arduino-ii-wielozadaniowosc-opoznienia-z-millis-id18418

@Santiago, możesz zapoznać się jako naczelny wódz tego projektu. Coś tak czuję, że po ulepszeniach, gdzieś za rok, nalewak będzie w myślach czytał, hehe.

Edytowano przez orb777
Link do komentarza
Share on other sites

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ę »
×
×
  • 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.