There are Power Stations for Maintaining or Monitoring the Power Circuits or Parameters related toSolar控制板。参数如电压,温度,光强度和电流,对监测很重要。这些参数的监测也很重要。所以,我们在这里讨论如何监控太阳能电池板参数。For this project reader should have knowledge abouthow to start with arduino和interface LCD with arduino。
Fig. 1:基于Arduino的太阳能电池板电气参数监视器原型
In this circuit all the parameters are in the analog form. We need to only convert them in DigitalfForm and display these Digital values on the液晶。适当测量也需要一些额外的电路。
Fig. 2:基于Arduino的太阳能电池板电气参数监视器框图
Voltage Measurement
太阳能电池板的电压测量非常简单,最高可达5伏。但如果我们想测量超过5伏,那么我们必须使用一些额外的电路,如分压器。该电路根据电压而变化,这意味着我们必须测量多少电压。
Let us suppose if we want to measure 5 volts, then there is no need for any Additional Circuitry. Just connect theSolar PanelOutput Voltage toAnalog pin的Arduino并在LCD或计算机上的数字和显示结果转换。
And suppose if you want to measure up to 10 volts then you have to use the given circuitry.
Fig. 3:Circuit Diagram of Arduino based Digital Voltmeter
For measuring Voltage we have to follow the given Formula:
电压=(模拟值/电阻因子)*参考电压
Where:
Analog value= Analog output of Voltage divider
Resistor factor= 1023.0/(R2/R1+R2)
Reference Voltage= 5 volts
And let suppose:
R1= 1K
R2=1K
Resistor factor= 1023.0 * (1000/1000+1000)
Resistor factor=1023.0 * 0.5
Resistor factor= 511.5 for up to 10 volts and for more see given table.
Fig. 4:表显示电压测量的电阻比
Light Intensity Measurement
Light Intensity is also easy to execute in the project like the Voltage Measurement. For Light Intensity first we have to use Voltage divider and then measure the Voltage. Later through some calculation we will get the Light Intensity Result.
Here we are going to show you how to do this:
For this we have to useLDR.(轻依赖寄存器),在市场上非常常见,很容易获得。
现在,您可以看到光强度测量部分的电路图。
Fig. 5:基于Arduino光强度计的电路图
Here we are using a 3.3K ohmresistor和a LDR connected with each other and middle points is used as output. As light falls on LDR, resistance of LDR decreases, due to which Analog Voltage is generated, later apply this Voltage to Arduino.
Relation between RL (LDR) and Light Intensity (Lux) is given below:
RL = 500 / LUX
Output Voltage of this circuit can be calculated by using given formula.
Vout= 5 * RL / (RL+3.3)
Where RL is Load Resistance ( LDR Resistance varies according to light intensity).
Now by using given formula we can calculate Light intensity in lux ( where lux in unit of light intensity).
Lux= (2500 / Vout – 500) / 3.3
温度测量,电路和部件
Temperature Measurement
For Measuring Temperature here we have usedlm35that is gives 10 mV for every 1 degree Celsius. Circuitry is simple for this.
Fig. 6:Circuit Diagram of Arduino based Digital Thermometer
By using given formula we can calculate Temperature in Degree Celsius:
Temperature=Analog value*(5.0/1023.0)*100;
Where, 5 is reference voltage.
Circuit
液晶connections are displayed in circuit. Please refer Circuit Diagram Tab for Circuit.
Components Used
1.Arduino
2.SolarPanel
3.LM35
4. LDR
5.16×2 LCD
7. Connecting wires
Project Source Code
###
/ * ----------太阳能测量使用Arduino --------- * / / * -------------------By Saddam Khan --------------------- * / / * -----------------工程师车库-------------------- * / #include#define传感器A0 #define伏A1 #define Lux A3液晶LCD(2,3,4,5,6,7);浮动温度,温度,伏特,伏特,勒克斯,温度;int temp1,价值;字节学位[8] = {0b00011,0b00011,0b00000,0b00000,0b00000,0b00000,0b00000,0b00000};void setup(){lcd.begin(16,2);LCD.CreateChar(1,学位);Serial.Begin(9600);lcd.setCursor(0,0);lcd.print(“求解能量”);lcd.setCursor(0,1); lcd.print(" Measurement "); delay(2000); lcd.clear(); lcd.setCursor(0,0); lcd.print(" By Saddam Khan "); lcd.setCursor(0,1); lcd.print("ENGINEERS GARAGE"); delay(2000); lcd.clear(); } void loop() { /*---------Temperature-------*/ float reading=analogRead(sensor); Temperature=reading*(5.0/1023.0)*100; delay(10); /*---------Voltage----------*/ temp1=analogRead(VOLT); volts= (temp1/511.5)*5; delay(10); /*-----Light Intensity------*/ value=analogRead(LUX); volt=(value/1023.0)*5; lux=((2500/volt)-500)/3.3; delay(10); /*------Display Result------*/ lcd.clear(); lcd.setCursor(0,0); lcd.print("T:"); lcd.print((int)analog_value); lcd.write(1); lcd.print("C"); lcd.setCursor(8,0); lcd.print("V:"); lcd.print(volts); lcd.setCursor(0,1); lcd.print("Intens: "); lcd.print((int)lux); lcd.print(" Lux"); Serial.println((int)Temp); Serial.println(volts); Serial.println((int)lux); delay(500); } ###