මෙහි අපි උශ්ණත්ව සහ ආලෝක සංවේදකයන් දෙකක් භාවිතා කරමු. සංවේදක සඳහා 1k ප්රතිරෝධක යොදා ඇති අයුරු බලන්න. ඒවා සංවේදක හා පුවරුවේ ආරක්ෂාවටය.
0 අග්රය හා 1 අග්රය සංවේදක කියවීම සඳහා භාවිතා කරයි.
යොදා ඇති ඩිගිටල් අග්ර 4, 5 සහ 6 කියවයි. මෙම බල්බ සඳහා 1k ප්රතිරෝධක භාවිතා කිරීම සුදුසු වේ.


කේතය
int tempsensorPin = 0; // උශ්ණත්ව සංවේදකය 0 අග්රය
int lightPin = 1; // ආලෝක සංවේදකය 1 අග්රය
int latchPin = 5; //
int clockPin = 6; //කාල ගණකය 6 අග්රය
int dataPin = 4; // දත්ත 4 අග්රය
int leds = 0;
void setup()
{
// අග්රයන් සකසන්න
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
Serial.begin(9600); //සන්නිවේදන වේගය
}
void loop()
{
//උශ්ණත්ව අගය කියවා 5v ධාරාවට හැරවීම
int tempreading = analogRead(tempsensorPin);
float voltage = tempreading * 5.0;
voltage /= 1024.0;
float temperatureC = (voltage - 0.5) * 100 ;
Serial.print(temperatureC);
Serial.println(" C");
delay(500);
//ආලෝකය කියවන්න
int reading = analogRead(lightPin);
//කියවු අගය හරවන්න
int numLEDSLit = reading / 57; //1023 / 9 / 2
// අගය 8ට වැඩිනම් එය 8 කරන්න
if (numLEDSLit > 8){ numLEDSLit = 8;}
leds = 0; // LED දල්වා නැත
for (int i = 0; i < numLEDSLit; i++){
leds = leds + (1 << i); // sets the i'th bit
}
updateShiftRegister();
}
void updateShiftRegister()
{
digitalWrite(latchPin, LOW); //ලැච් අග්රය නිවන්න
shiftOut(dataPin, clockPin, LSBFIRST, leds); //දත්ත
digitalWrite(latchPin, HIGH); //ලැච් අග්රය දල්වන්න
}
ශිල්ප 64