Jump to content
ELFORUM - Forumul electronistilor

Mica automatizare


Mihai85

Recommended Posts

Acum 2 ore, Mihai85 a spus:

Ultima cifra mai oscileaza, pentru ca nu mai pot introduce delay().

 

Poti incerca delay fara delay().
Ceva de genul:
 

long prev_millis=0;

#define read_interval 100
int V1=0,V2=0, cate_citiri=0;


if(millis()-prev_millis>read_interval)	// citesc la fiecare 100ms
{
	V1+=analogRead(1);
	V2+=analogRead(2);
	if(++cate_citiri==10)		// afisez la 1sec
	{
         V1=V1/10;			// media celor 10 citiri
         V2=V2/10;
	     // calcul temp. si afisare		
         V1=0;
         V2=0;
	 cate_citiri=0;
	}

	prev_millis=millis;
}

 

Edited by Guest
Link to comment
  • Replies 18
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Pentru a revenii la zero unde ai acel "if(flag)" si calculezi "RPM" salveaza intr-o variabila si millis(), mai apoi dupa acel "if" mai pui un "if" unde verifici cat timp a trecut de la ultima calculare ( cand flag a fost 1), iar daca au trecut mai mult de X millis atunci resetezi variabila "RPM" la 0. Ce trebuie sa faci este sa verifici cat timp a trecut de la ultima detectare a magnetului sa iti dai seama cand sa oprit magnetul si asta o faci verificand cat timp a trecut de la ultima detectie iar daca sa zicem au trecut X millisecunde inseamna ca mult mai probabil nu se mai roteste. Timpul il calculezi aproximativ fata de rotatia minima pe care vrei sa o poti detecta. 

Link to comment

Se poate și matematic în sensul ca avem un sistem mecanic la care nu poți fi variații prea bruște ale valorilor și atunci se poate calcula pe baza ultimilor valori citite cit va fi aproximativ urmatoarea valoare. 

La fel și cu intervalul maxim între citirea magnetului. Unui motor nu-i poate varia prea mult viteza în citeva milisecunde/zeci de milisecunde. 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines