Skocz do zawartości

System wyrownywania poziomu wody w akwarium


Pomocna odpowiedź

@Chumanistadawno takiego potworka nie widziałem 🙂 Teraz dorób do tego regulację temperatury...

A poza tym warunek początkowy to sam z siebie się weźmie? Jesteś na 100% pewien, że pinMode(11, OUTPUT) ustawi zero na pinie 11?

@BlackJack  czujniki poziomu wody do arduino są najczęściej analogowe, poza tym liniowe, A co za tym idzie, nie ma konieczności ustalania nie wiadomo czego.

@ethanakcieszę się że mogłem poprawić Twój dzień 😉

pinMode tylko ustawia DDRX w trochę dookoła sposób a PORTX na ATmegach jest domyślnie wyzerowany.

Fakt, można lepiej ale chciałem minimum linijek 😉

void setup(){
	pinMode(11, OUTPUT);
	digitalWrite(11, LOW); 
}
void loop(){
	if (digitalRead(11) && analogRead(A1) > 200){
		digitalWrite(11, LOW); 
	else if (!digitalRead(11) && analogRead(A1) < 150){
		digitalWrite(11, HIGH);
	}
	//cokolwiek innego tutaj
}

Jeszcze lepiej byłoby sprawdzać stan w przerwaniu żeby nie nalać za dużo jakby jakiś inny kod wykonywał się za długo ale to powinno działać 😉

6 minut temu, Chumanista napisał:

cieszę się że mogłem poprawić Twój dzień 😉

Przynajmniej chwila uśmiechu w czasie czekania od szóstej rano, aż Imć Pan Kurier raczy wrzucić mi paczuszkę z Botlandu do paczkomatu 🙂  Ciekawe, czy dzisiaj jeszcze to dostanę...

raczej nie 🤣

34 minuty temu, Chumanista napisał:

PORTX na ATmegach jest domyślnie wyzerowane

 

Co do tego nie jestem pewien.

@Chumanistaczy tak jest w każdym mikrokontrolerze? Jeśli w dokumentacji biblioteki (w tym przypadku Wiringa/Arduino) nie mam wyraźnie napisane, że po resecie jest zero na wyjściu to zakładam, że jest hgw co i włos mi z głowy nie spadnie, jak wrzucę jedną instrukcję zerującą wyjście. Mała redundancja nikomu jeszcze nie zaszkodziła 🙂

 

Akurat w AVR tak jest, że rejestry DRR i PORT są zerowane przez sygnał RESET a kombinacja DDRn=0 i PORTn=0 daje konfigurację pinu jako wejście bez pullup. To się wydaje bezpieczne, ale nie jest to regułą. Są mikrokontrolery które włączają sobie na pinach pullup (więc widzisz de facto słabą jedynkę) albo takie w których pin co prawda jest wejściem, ale rejestr portu jest nieokreślony więc jeśli przełączysz tylko kierunek na wyjście bez zapisu do rejestru "danych" to dostaniesz stan przypadkowy. Podejrzewam, że na przestrzeni historii i w mnogości układów zrobiono i wykorzystano już wszystkie możliwości jakie tylko mogą nam przyjść do głowy. I dlatego zawsze warto.. RTFM 😉

 

  • Lubię! 1

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...