{"id":517,"date":"2016-08-13T16:36:49","date_gmt":"2016-08-13T14:36:49","guid":{"rendered":"https:\/\/olkn.myvnc.com\/?p=517"},"modified":"2016-08-13T16:36:49","modified_gmt":"2016-08-13T14:36:49","slug":"mirror-sketch","status":"publish","type":"post","link":"https:\/\/olkn.myvnc.com\/?p=517","title":{"rendered":"mirror.sketch"},"content":{"rendered":"<p>The sketch for my mirror with display:<br \/>\n<code><br \/>\n\/* mirror<br \/>\n *<br \/>\n * control PWM for fan, read temperatures from DS1820 and interface to PIR<br \/>\n*\/<br \/>\n#include <OneWire.h><br \/>\n#include <DallasTemperature.h><br \/>\n#include <avr\/interrupt.h> \/\/ interrupt routine<br \/>\n#define ONE_WIRE_BUS 3 \/\/ define port for DS1820 interface<br \/>\n#define TEMP_DEVICE_IN 28E08F3606000003<br \/>\n#define TEMP_DEVICE_EX 289A78370600002C<br \/>\n#define TEMP_DEVICE_BOARD 2873163706000020<br \/>\n#define LED 4<br \/>\n#define PIR_INTERFACE 5 \/\/ define port for PIR<br \/>\n#define FANSENSE 8<br \/>\n#define FANPWM 9<br \/>\n#define THRESHOLD_OFF 25<br \/>\n#define THRESHOLD_LOW 30<br \/>\n#define THRESHOLD_HIGH 40<br \/>\n#define THRESHOLD_ON 45<br \/>\n#define TASTER_DOWN 6<br \/>\n#define TASTER_UP 7<\/p>\n<p>DeviceAddress devices[] = {TEMP_DEVICE_IN, TEMP_DEVICE_EX, TEMP_DEVICE_BOARD };<br \/>\n\/\/ Setup a oneWire instance to communicate with any OneWire devices<br \/>\nOneWire oneWire(ONE_WIRE_BUS);<br \/>\n\/\/ Pass our oneWire reference to Dallas Temperature.<br \/>\nDallasTemperature sensors(&oneWire);<br \/>\nint buttonPressed = 0;<\/p>\n<p>void setup() {<br \/>\n  Serial.begin(9600);\/\/ start serial port<br \/>\n  sensors.begin();\/\/ Start up the library<br \/>\n  for( int i=0; i < 3; i++){\n    sensors.setResolution(devices[i], 10);\/\/ set the resolution to 10 bit\n  }\n  pinMode(PIR_INTERFACE, INPUT);\/\/ read PIR status from external Board\n  pinMode(FANSENSE, INPUT); \/\/ read RPM data from sense of FAN\n  digitalWrite(FANSENSE, HIGH); \/\/ activate internal Pull Up\n  pinMode(LED, OUTPUT); \/\/ LED for status info\n  pinMode(TASTER_DOWN, INPUT); \/\/ external key for navigation input\n  pinMode(TASTER_DOWN, INPUT);\n}\n\nvoid setLED(int pulse){\n  if(pulse > 0){<br \/>\n    digitalWrite(LED, HIGH);<br \/>\n    delay(10*pulse);<br \/>\n    digitalWrite(LED, LOW);<br \/>\n    delay(10*pulse);<br \/>\n  }<br \/>\n}<\/p>\n<p>void loop() {<br \/>\n  \/* main loop sends list of values via serial line in format:<br \/>\n   *  up\/down (PIR status flag), TempExternal, TempInternal, TempBoard, RPM from Fan<br \/>\n   *\/<br \/>\n  float Temperature = 0;<br \/>\n  double frequency = 0;<br \/>\n  unsigned long pulseDuration = 0;<br \/>\n  int pirStatus = 0;<br \/>\n  pirStatus = digitalRead(PIR_INTERFACE);<br \/>\n  if( digitalRead(TASTER_UP) == HIGH ){<br \/>\n    buttonPressed = 2; \/\/ up taster pressed<br \/>\n  } else if ( digitalRead(TASTER_UP) == HIGH ) {<br \/>\n    buttonPressed = 1; \/\/ down taster pressed<br \/>\n  } else {<br \/>\n    buttonPressed = 0; \/\/ no button pressed<br \/>\n  }<br \/>\n  if (pirStatus == HIGH) {<br \/>\n    Serial.print(\"up,\");<br \/>\n  } else {<br \/>\n    Serial.print(\"down,\");<br \/>\n  }<br \/>\n  for(int i = 0; i < 3; i++){\n    Temperature = Temperature + sensors.getTempC(devices[i]);\n    Serial.print(Temperature);\n    Serial.print(\",\");   \n  }\n  Temperature = Temperature \/ 3;\n  \/\/ Temperature Hytherese\n  \n  pulseDuration = pulseIn(FANSENSE, LOW);\n  frequency = 1000000\/pulseDuration;\n  Serial.print(frequency);\n  Serial.println();\/\/ new line for next data\n\/\/  analogWrite(FANPWM, 70); \/\/set PWM signal\n}\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The sketch for my mirror with display: \/* mirror * * control PWM for fan, read temperatures from DS1820 and interface to PIR *\/ #include #include #include \/\/ interrupt routine #define ONE_WIRE_BUS 3 \/\/ define port for DS1820 interface #define TEMP_DEVICE_IN 28E08F3606000003 #define TEMP_DEVICE_EX 289A78370600002C #define TEMP_DEVICE_BOARD 2873163706000020 #define LED 4 #define PIR_INTERFACE 5 \/\/ &hellip; <a href=\"https:\/\/olkn.myvnc.com\/?p=517\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">mirror.sketch<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,164],"tags":[38,46],"class_list":["post-517","post","type-post","status-publish","format-standard","hentry","category-android-software-projects","category-cubieboard4","tag-android","tag-config"],"_links":{"self":[{"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=\/wp\/v2\/posts\/517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=517"}],"version-history":[{"count":1,"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=\/wp\/v2\/posts\/517\/revisions"}],"predecessor-version":[{"id":519,"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=\/wp\/v2\/posts\/517\/revisions\/519"}],"wp:attachment":[{"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}