Advertisement
gabbyshimoni

sampleProject1

Mar 4th, 2020
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.52 KB | None | 0 0
  1. #define distancePot A0
  2. #define lightPot A1
  3. #define durationPot A2
  4. #define ldrPin A3
  5. #define ledPin 12
  6. #define TRIG 7
  7. #define ECHO 6
  8. int dPotVal, lPotVal, tPotVal, ldrVal;
  9.  
  10. void setup() {
  11.   Serial.begin(9600);
  12.   pinMode(ledPin, OUTPUT);
  13.   pinMode(TRIG, OUTPUT);
  14.   pinMode(ECHO, INPUT);
  15.   // שורות ההגדרה הבאות לא הכרחיות מכיוון שמדובר בחיבורים אנאלוגיים
  16.   pinMode(distancePot, INPUT);
  17.   pinMode(lightPot, INPUT);
  18.   pinMode(durationPot, INPUT);
  19.   pinMode(ldrPin, INPUT);
  20.  
  21.   digitalWrite(ledPin, LOW);
  22. }
  23.  
  24. void loop() {
  25.   //קבלת מידע
  26.   dPotVal = analogRead(distancePot);
  27.   lPotVal = analogRead(lightPot);
  28.   tPotVal = analogRead(durationPot);
  29.   ldrVal = analogRead(ldrPin);
  30.  
  31.   // קריאת מרחק מחיישן אולטראסוני
  32.   digitalWrite(TRIG, LOW);
  33.   delayMicroseconds(2);
  34.   digitalWrite(TRIG, HIGH);
  35.   delayMicroseconds(10);
  36.   digitalWrite(TRIG, LOW);
  37.  
  38.   long duration = pulseIn(ECHO, HIGH);
  39.   int distance  = duration / 58.1;
  40.  
  41.   // מיפוי ערכי הפוטנציומטרים לערכים רךוונטים
  42.   dPotVal = map(dPotVal, 0, 1023, 100, 300); // מיפוי לתחום ערכי מרחק רלוונטי להפעלה
  43.   tPotVal = map(tPotVal, 0, 1023, 0, 60); // מיפוי למשך הפעלת נורה בשניות
  44.  
  45.   if ((distance < dPotVal) && (ldrVal < lPotVal)) { // מרחק קטן מהרצוי וחשוך בחוץ
  46.     digitalWrite(ledPin, HIGH);
  47.     delay(tPotVal * 1000);
  48.     digitalWrite(ledPin, LOW);
  49.   }
  50.   delay(500);
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement