Sari la conținut

Citire ADC o anumita durata de timp!


dan_e

Postări Recomandate

senzor de nivel poti sa-i spui.

cum bine a spus RockDok

Quote

AU! totul se reduce la un bistabil SR

Nu e nevoie de MCU, nici ADC nici PWM.

AI nevoie de doua porti si-nu (NAND)  NOR figura de si mai jos.

 

Pentru porti NOR - la intrarea R legi senzorul sus (plin), la intrarea S legi senzorul jos (gol), si iesirea e Q (pompa) - daca tii neparat s-

 

image.png.543811ab1aa79ca4cd4533cf176e07cd.png

Se poate face si cu MCU  - daca vrei it scriu codul. (ai nevoie de doua intrari digitale si o iesire) 

RR

Editat de roadrunner
  • Thanks 1
Link spre comentariu
Distribuie pe alte site-uri

Nu cred ca ma complic cu cod. Incerc ceva simplu, exemplul tau, cum gasesc niste piese la indemana si implementez dupa starea de urgenta ca nu am montajul la mine, e undeva la tara.

mersi tuturor :cheers2:

Link spre comentariu
Distribuie pe alte site-uri

1 hour ago, dan_e said:

Nu cred ca ma complic cu cod. Incerc ceva simplu, exemplul tau, cum gasesc niste piese la indemana si implementez dupa starea de urgenta ca nu am montajul la mine, e undeva la tara.

mersi tuturor :cheers2:

Codul de mai jos pleaca de la ideea ca atunci cand rezervorul e plin se inchide contactul K1 si  pinul pe care leg la mcu  si devine low cu contactul inchis, adica are pull-up pinul respectiv, iar K2 este contactul de rezervor gol, care la fel cand e inchis aduce pinul respectiv in Low.

int main(void){
	DDRB &= ~(1 << PINB0);  //input PB0 pentru K0  rezervor gol - trebuie pull up
	DDRB &= ~(1 << PINB1); //input PB1 pentru K1 -rezervor plin- trebuie pull up
	DDRB |= (1 << PIN2); //output PB2 pentru pompa

	while(1){

		uint8_t K0 = (PINB & (1 << PINB0)) >> PINB0;  //citim K0  - cand rezervor gol K0=0
		uint8_t K1 = (PINB & (1 << PINB1)) >> PINB1; //citim K1 - cand rezervor plin K1=0


		switch ((K1 << 1)|(K0)){
			case 0:
				//situatie invalida nu poate fi si gol si plin in acelasi timp dar e posibil sa fie un switch defect asa ca orim pompa
				clrBit(PORTB, PB2);
				break;
			case 1:
				//rezevor plin 
            	clrBit(PORTB, PB2); //oprim pompa
				break;
			case 2:
				//rezervor gol 
				setBit(PORTB, PB2); //pornim pompa
				break;
			case 3:
				//nu facem nimic nivelul e intre plin si gol 
				break;
		} // switch
	} //bucla while
}//main

 

 

 

}

 

 

 

  • Thanks 1
Link spre comentariu
Distribuie pe alte site-uri

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.
×
×
  • Creează nouă...

Informații Importante

Folosim cookie-uri și tehnologii asemănătoare pentru a-ți îmbunătăți experiența pe acest website, pentru a-ți oferi conținut și reclame personalizate și pentru a analiza traficul și audiența website-ului. Înainte de a continua navigarea pe www.tehnium-azi.ro te rugăm să fii de acord cu: Termeni de Utilizare.

ATENTIE !!! Functionarea Tehnium Azi depinde de afisarea de reclame.

Pentru a putea accesa in continuoare site-ul web www.tehnium-azi.ro, va rugam sa dezactivati extensia ad block din browser-ul web al vostru. Dupa ce ati dezactivat extensia ad block din browser dati clic pe butonul de mai jos.

Multumim.

Apasa acest buton dupa dezactivarea extensiei Adblock