Skip to content

Commit

Permalink
source added
Browse files Browse the repository at this point in the history
  • Loading branch information
brittanybull committed Jul 23, 2018
1 parent ac88a05 commit cdfb904
Show file tree
Hide file tree
Showing 14 changed files with 479 additions and 0 deletions.
7 changes: 7 additions & 0 deletions SX02demoCC03_CS11/LOOP.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
void main_program(void) {
while (1) {
delay(0);
TaskScheduler();
}
}

34 changes: 34 additions & 0 deletions SX02demoCC03_CS11/MAIN.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
void main_code(void) {

// store the volatge
voltage = SX01.getVoltage();

// calculate thermistor resistance
therm_res = ((vcc * series_res) / voltage) - series_res;

// calculate the actual temperature in kelvin
act_tempK = (room_tempK * B) / (B + room_tempK * log(therm_res / room_res));

// convert kelvin to celsius
act_tempC = act_tempK - C_Kelvin;

// print temperature on OLED display
// manual formatting to display in center
OD01.set2X();
OD01.print(" ");
OD01.print(act_tempC);
OD01.print(" C");
OD01.println("");
OD01.set1X();
OD01.println(" SX02 is an ADC");
OD01.println("");

OD01.println(" Touch the probe for");
OD01.println(" temperature change");
OD01.println("");
OD01.print(" ");
OD01.print((1.8*act_tempC)+32);
OD01.print(" F");

}

60 changes: 60 additions & 0 deletions SX02demoCC03_CS11/RGB.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
void red_fade(const long interval, int LED, int limit, int increment) {
currentMilli = millis();
if (currentMilli - previousMilli1 >= interval) {
previousMilli1 = currentMilli;
if (fade_flag1 == true) {
LED_state1 += increment;
if (LED_state1 == limit) {
fade_flag1 = false;
}
}
if (fade_flag1 == false) {
LED_state1 -= increment;
if (LED_state1 == 0) {
fade_flag1 = true;
ledID++;
}
}
}
analogWrite(LED, LED_state1);
}
void blue_fade(const long interval, int LED, int limit, int increment) {
currentMilli = millis();
if (currentMilli - previousMilli2 >= interval) {
previousMilli2 = currentMilli;
if (fade_flag2 == true) {
LED_state2 += increment;
if (LED_state2 == limit) {
fade_flag2 = false;
}
}
if (fade_flag2 == false) {
LED_state2 -= increment;
if (LED_state2 == 0) {
fade_flag2 = true;
ledID = 0;
}
}
}
analogWrite(LED, LED_state2);
}
void green_fade(const long interval, int LED, int limit, int increment) {
currentMilli = millis();
if (currentMilli - previousMilli3 >= interval) {
previousMilli3 = currentMilli;
if (fade_flag3 == true) {
LED_state3 += increment;
if (LED_state3 == limit) {
fade_flag3 = false;
}
}
if (fade_flag3 == false) {
LED_state3 -= increment;
if (LED_state3 == 0) {
fade_flag3 = true;
ledID++;
}
}
}
analogWrite(LED, LED_state3);
}
54 changes: 54 additions & 0 deletions SX02demoCC03_CS11/SETUP.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
void setup_program(void) {

#if defined(ESP8266)
WiFi.forceSleepBegin();
Wire.begin(2, 14);
Wire.setClockStretchLimit(15000);

#elif defined(ARDUINO_SAMD_ZERO)
Wire.begin();

#elif defined(ARDUINO_AVR_PRO)
Wire.begin();

#elif defined(ESP32)
Wire.begin();

#endif

voltage = 0;
therm_res = 0;
act_tempK = 0;
act_tempC = 0;

// start sensor
SX01.begin();

// start oled
OLED.begin();

// clear oled
OD01.clear();

// set output leds
pinMode(CW01_RED, OUTPUT);
pinMode(CW01_GREEN, OUTPUT);
pinMode(CW01_BLUE, OUTPUT);

// turn rgb on
digitalWrite(CW01_RED, HIGH);
digitalWrite(CW01_GREEN, HIGH);
digitalWrite(CW01_BLUE, HIGH);

delay(2000);

// turn rgb off
digitalWrite(CW01_RED, LOW);
digitalWrite(CW01_GREEN, LOW);
digitalWrite(CW01_BLUE, LOW);

delay(1000);
t.tick_main = millis();
t.tick_poll = millis();
}

68 changes: 68 additions & 0 deletions SX02demoCC03_CS11/SX02demoCC03_CS11.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#include <xCore.h>
#include <xOD01.h>
#include "TIMER_CTRL.h"
#include <xSX01.h> // include analogue input sensor library
#include <math.h> // include maths functions

#if defined(ESP8266)
#define RED RED
#define GREEN GREEN
#define BLUE BLUE
#include <ESP8266WiFi.h>
#define Serial Serial

#elif defined(ARDUINO_SAMD_ZERO)
#define RED CC03_RED
#define GREEN CC03_GREEN
#define BLUE CC03_BLUE
#define Serial SerialUSB

#elif defined(ARDUINO_AVR_PRO)
#define RED CC01_RED
#define GREEN CC01_GREEN
#define BLUE CC01_BLUE
#define Serial Serial

#elif defined(ESP32)
#define RED CW02_RED
#define GREEN CW02_GREEN
#define BLUE CW02_BLUE
#define Serial Serial
#endif

#define C_Kelvin 273.15 // for conversion from kelvin to celsius
#define series_res 10000 // value of series resistor in ohms
#define B 3950 // B parameter for thermistor
#define room_tempK 298.15 // room temperature in kelvin
#define room_res 10000 // resistance at room temperature in ohms
#define vcc 3.3 // supply voltage

xSX01 SX01(0x55); // set the i2c address

float voltage; // variable containing the measured voltage (0 - 3.3V)
float therm_res; // thermistor resistance
float act_tempK; // actual temperature kelvin
float act_tempC; // actual temperature in celsius

unsigned long currentMilli = 0;
int ledID = 0;
bool fade_flag1 = true;
unsigned long previousMilli1 = 0; // timing variable for LEDS
int LED_state1 = 0;
bool fade_flag2 = true;
unsigned long previousMilli2 = 0; // timing variable for LEDS
int LED_state2 = 0;
bool fade_flag3 = true;
unsigned long previousMilli3 = 0; // timing variable for LEDS
int LED_state3 = 0;


void setup() {
// put your setup code here, to run once:
setup_program();
}

void loop() {
// put your main code here, to run repeatedly:
main_program();
}
20 changes: 20 additions & 0 deletions SX02demoCC03_CS11/TASKS.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
void TaskScheduler(void) {
if (ledID == 0) {
red_fade(30, CW01_RED, 255, 5);
} else if (ledID == 1) {
green_fade(30, CW01_GREEN, 255, 5);
} else if (ledID == 2) {
blue_fade(30, CW01_BLUE, 255, 5);
}
if((millis() - t.tick_main) > 1000) {
OD01.clear();
main_code();
t.tick_main = millis();
}

if((millis() - t.tick_poll) > 30) {
SX01.poll();
t.tick_poll = millis();
}

}
10 changes: 10 additions & 0 deletions SX02demoCC03_CS11/TIMER_CTRL.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#ifndef timer_h
#define timer_h

struct TIMER_CTRL {
unsigned long tick_main;
unsigned long tick_poll;
}t;

#endif

7 changes: 7 additions & 0 deletions SX02demoCW01/LOOP.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
void main_program(void) {
while (1) {
delay(0);
TaskScheduler();
}
}

34 changes: 34 additions & 0 deletions SX02demoCW01/MAIN.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
void main_code(void) {

// store the volatge
voltage = SX01.getVoltage();

// calculate thermistor resistance
therm_res = ((vcc * series_res) / voltage) - series_res;

// calculate the actual temperature in kelvin
act_tempK = (room_tempK * B) / (B + room_tempK * log(therm_res / room_res));

// convert kelvin to celsius
act_tempC = act_tempK - C_Kelvin;

// print temperature on OLED display
// manual formatting to display in center
OD01.set2X();
OD01.print(" ");
OD01.print(act_tempC);
OD01.print(" C");
OD01.println("");
OD01.set1X();
OD01.println(" SX02 is an ADC");
OD01.println("");

OD01.println(" Touch the probe for");
OD01.println(" temperature change");
OD01.println("");
OD01.print(" ");
OD01.print((1.8*act_tempC)+32);
OD01.print(" F");

}

60 changes: 60 additions & 0 deletions SX02demoCW01/RGB.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
void red_fade(const long interval, int LED, int limit, int increment) {
currentMilli = millis();
if (currentMilli - previousMilli1 >= interval) {
previousMilli1 = currentMilli;
if (fade_flag1 == true) {
LED_state1 += increment;
if (LED_state1 == limit) {
fade_flag1 = false;
}
}
if (fade_flag1 == false) {
LED_state1 -= increment;
if (LED_state1 == 0) {
fade_flag1 = true;
ledID++;
}
}
}
analogWrite(LED, LED_state1);
}
void blue_fade(const long interval, int LED, int limit, int increment) {
currentMilli = millis();
if (currentMilli - previousMilli2 >= interval) {
previousMilli2 = currentMilli;
if (fade_flag2 == true) {
LED_state2 += increment;
if (LED_state2 == limit) {
fade_flag2 = false;
}
}
if (fade_flag2 == false) {
LED_state2 -= increment;
if (LED_state2 == 0) {
fade_flag2 = true;
ledID = 0;
}
}
}
analogWrite(LED, LED_state2);
}
void green_fade(const long interval, int LED, int limit, int increment) {
currentMilli = millis();
if (currentMilli - previousMilli3 >= interval) {
previousMilli3 = currentMilli;
if (fade_flag3 == true) {
LED_state3 += increment;
if (LED_state3 == limit) {
fade_flag3 = false;
}
}
if (fade_flag3 == false) {
LED_state3 -= increment;
if (LED_state3 == 0) {
fade_flag3 = true;
ledID++;
}
}
}
analogWrite(LED, LED_state3);
}
Loading

0 comments on commit cdfb904

Please sign in to comment.