Go Down

Topic: Capacimetro per condensatori ceramici (Read 2036 times) previous topic - next topic

nikone

May 07, 2011, 03:24 pm Last Edit: May 07, 2011, 03:30 pm by nikone Reason: 1
Ciao a tutti,
volevo condividere con voi il progetto di un capacimetro realizzato con arduino che permette misurazioni di condensatori ceramici superiori ad un microfarad ( i soliti poliestere) ho preso spunto da un progetto comparso sulla rivista elektor qualche mese fà http://www.elektor.it/le-riviste/2011/aprile/pico-c.1753089.lynkx e l'ho adattato a funzionare con arduino usando un ne555

Uploaded with ImageShack.us ( il condensatore sul control voltage è da 10nF e le resistenze sono da 100k e 4,7k)

Uploaded with ImageShack.us purtroppo sono riuscito a misurare solo sopra 1 uF ( a causa della bassa capacità di clock dell'atmega) Ringrazio Menniti per il codice perfettamente funzionante che mi ha fornito :
Code: [Select]
#include <LiquidCrystal.h>
int val=0;
int val1;
int sigPin = 6; //signal pin
int state; //the state of the input
int oldstate;
unsigned long t; //timer
unsigned long s; //samples
unsigned long c; //count
unsigned long f; //frequency
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

void setup()
{
 lcd.begin(2, 16);
 pinMode(sigPin, INPUT);
 pinMode(2, INPUT);
 Serial.begin(9600);
}

void loop()
{
 c = 0;

  t = millis(); // read time at start of sampling
  for(s=0; s<100000; s++){ //take a number of samples
state = digitalRead(sigPin); //read state
if (state != oldstate){ //if state changes:
  c++; //increment counter
  oldstate = state; //and reset current state
}

  }
  t = millis() - t; //read time at end of sampling

  c = c/2; // need to divide by 2 because counter incremented on each change - two changes per cycle

  f = 1000*c/t; //calculate frequency
  lcd.clear();
lcd.print("capacita");
lcd.print(f/8);

 
}
 XD
Una volta perfezionato ho passato tutto su un atmega 328 ed ecco il risultato :

Uploaded with ImageShack.us(scusate la definizione)
se qualcuno è interessato allego  il file eagle per il pcb
ciao niko
Non possiamo pretendere che le cose cambino, se continuiamo a fare le stesse cose(albert Einstein )

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy