මෙහි අපි උශ්ණත්ව සහ ආලෝක සංවේදකයන් දෙකක් භාවිතා කරමු. සංවේදක සඳහා 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); //ලැච් අග්රය දල්වන්න }