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