Real-Time Energy Monitor with Arduino and LabVIEW

The system consists of two parts: the Arduino board that detects the led pulses and sends the data via the XBee module, and a PC that recive the data through a USB/Xbee module and processes the data with LabVIEW so you can prepare and study the consumption in a very instant. To detect the LED blinking you have to apply a simple photoresistor above
Real-Time Energy Monitor with Arduino and LabVIEW - schematic

the led and covered it with black tape. To read the analog voltage using the Arduino you have to use a resistive divider as shown in diagram: The LED blinking causes the voltage drop down and this value is read by Arduino and compared with the voltage acquired by the potentiometer connected in the channel A0. This potentiometer has the task to adjust the sensitivity threshold. delay(10); //10ms val_pot = analogRead(POT); delay(10); //10ms val_sensore = analogRead(SENSORE); if(val_sensore > val_pot)&(flag_acquire = 0){ flag_acquire = 1; digitalWrite(LED, LOW); With this code Arduino acquires the two voltages, the photoresistor voltage compared with the voltage of the potentiometer, if the value is greater than the sketch actives the flag flag_acquire = 1 ³, then read how much time has passed to another flash. To do this use arduino to read a statement in an internal counter that returns the milliseconds since power on. The instruction is millis ()  code here: There are 2 variables pre_tmS and cur_tmS, cur_tmS  needs to read the current value of the internal counter: cur_tmS = millis (); Then if the condition (cur_tmS> pre_tmS) is true, I note the elapsed time between cycles, ie between the LED ON and the next cycle of the LED ON and write it on the variable pre_tmS . Now we have to send to the PC via the serial port using XBee with these instructions: First Arduino sends a marker S  used to labview to recognize that...

Leave Comment

characters left:

New Circuits