fork of seeed studio 4-digit display for st nucleo board

Dependencies:   Data_Clock_Pair Seeed_Chainable_LED Seeed_Four_Digit_Disp Seeed_IR_Temp_Sensor Seeed_Led_Bar

Fork of Seeed_Grove_4_Digit_Display_Clock by Seeed

Committer:
tulanthoar
Date:
Thu May 18 10:47:08 2017 -0600
Revision:
15:abda719ba6e6
Parent:
12:a16d86fac131
Child:
17:71c14845db51
use cxx11; change IR thermo to use floating point math

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tulanthoar 4:d540dccad60a 1 #include <algorithm>
tulanthoar 4:d540dccad60a 2 #include <cmath>
tulanthoar 4:d540dccad60a 3 #include "mbed.h"
tulanthoar 7:b16b9733d859 4 #include "rtos.h"
tulanthoar 6:14929f54ed6f 5 #include "SeeedLedBar.h"
tulanthoar 6:14929f54ed6f 6 #include "SeeedFourDigitDisp.h"
tulanthoar 6:14929f54ed6f 7 #include "SeeedQTouch.h"
tulanthoar 6:14929f54ed6f 8 #include "SeeedChainableLED.h"
tulanthoar 15:abda719ba6e6 9 #include "SeeedIRTempSensor.h"
tulanthoar 15:abda719ba6e6 10
tulanthoar 15:abda719ba6e6 11 namespace {
tulanthoar 4:d540dccad60a 12
tulanthoar 3:c4427ce4d171 13 Serial pc(SERIAL_TX, SERIAL_RX);
tulanthoar 7:b16b9733d859 14 DigitalOut led(PF_12);
tulanthoar 4:d540dccad60a 15 AnalogIn knob(PA_3);
tulanthoar 3:c4427ce4d171 16
tulanthoar 15:abda719ba6e6 17 void led_thread() {
tulanthoar 7:b16b9733d859 18 while(1) {
tulanthoar 7:b16b9733d859 19 led = !led;
tulanthoar 7:b16b9733d859 20 Thread::wait(1000);
tulanthoar 7:b16b9733d859 21 }
tulanthoar 7:b16b9733d859 22 }
tulanthoar 15:abda719ba6e6 23 } // namespace
tulanthoar 7:b16b9733d859 24
tulanthoar 6:14929f54ed6f 25 int main() {
tulanthoar 6:14929f54ed6f 26 pc.printf("\n\nstarting algorithm\n\n");
tulanthoar 15:abda719ba6e6 27 DataClockPair chainablePins, rgbPins, qTouchPins, dispPins, ledBarPins, surrDispPins;
tulanthoar 15:abda719ba6e6 28 surrDispPins.dataPin = PG_0;
tulanthoar 15:abda719ba6e6 29 surrDispPins.clockPin = PG_1;
tulanthoar 12:a16d86fac131 30 ledBarPins.dataPin = PE_9;
tulanthoar 12:a16d86fac131 31 ledBarPins.clockPin = PF_13;
tulanthoar 12:a16d86fac131 32 dispPins.dataPin = PE_13;
tulanthoar 12:a16d86fac131 33 dispPins.clockPin = PF_15;
tulanthoar 12:a16d86fac131 34 qTouchPins.dataPin = PB_9;
tulanthoar 12:a16d86fac131 35 qTouchPins.clockPin = PB_8;
tulanthoar 12:a16d86fac131 36 rgbPins.dataPin = PG_14;
tulanthoar 12:a16d86fac131 37 rgbPins.clockPin = PG_9;
tulanthoar 12:a16d86fac131 38 chainablePins.clockPin = PF_14;
tulanthoar 12:a16d86fac131 39 chainablePins.dataPin = PE_11;
tulanthoar 12:a16d86fac131 40 SeeedLedBar ledBar(ledBarPins);
tulanthoar 12:a16d86fac131 41 SeeedFourDigitDisp disp(dispPins);
tulanthoar 15:abda719ba6e6 42 SeeedFourDigitDisp surrDisp(surrDispPins);
tulanthoar 12:a16d86fac131 43 SeeedQTouch qTouch(qTouchPins);
tulanthoar 12:a16d86fac131 44 SeeedChainableLED led_chain(chainablePins);
tulanthoar 12:a16d86fac131 45 SeeedChainableLED rgb_led(rgbPins);
tulanthoar 3:c4427ce4d171 46
tulanthoar 15:abda719ba6e6 47 Thread blinky;
tulanthoar 15:abda719ba6e6 48 blinky.start(callback(led_thread));
tulanthoar 3:c4427ce4d171 49
tulanthoar 6:14929f54ed6f 50 disp.set_digit(0,0);
tulanthoar 4:d540dccad60a 51 int knob_led_bar[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
tulanthoar 6:14929f54ed6f 52 ledBar.ten_on();
tulanthoar 6:14929f54ed6f 53 disp.clear_display();
tulanthoar 6:14929f54ed6f 54 led_chain.turn_on();
tulanthoar 12:a16d86fac131 55 led_chain.set_color_rgb(100,50,0);
tulanthoar 12:a16d86fac131 56 rgb_led.set_color_rgb(50,200,10);
tulanthoar 6:14929f54ed6f 57 while (1) {
tulanthoar 12:a16d86fac131 58 qTouch.key_touch(&pc);
tulanthoar 15:abda719ba6e6 59 surrDisp.set_integer(floor(IRTempSensor::measureObjectTemp(PA_3, PC_0)));
tulanthoar 15:abda719ba6e6 60 auto led_frac = knob.read();
tulanthoar 4:d540dccad60a 61 int led_percent = floor(led_frac * 100);
tulanthoar 4:d540dccad60a 62 int tens = floor(led_frac * 10);
tulanthoar 4:d540dccad60a 63 int ones = led_percent % 10;
tulanthoar 4:d540dccad60a 64 ones = floor(ones * 10 / 8);
tulanthoar 4:d540dccad60a 65 if (ones > 8) ones = 8;
tulanthoar 6:14929f54ed6f 66 for (int i = 0; i < tens; ++i) knob_led_bar[i] = 0xff;
tulanthoar 7:b16b9733d859 67 knob_led_bar[tens] = ones * 0xf;
tulanthoar 7:b16b9733d859 68 for (int i = ++tens; i < 10; ++i) knob_led_bar[i] = 0x00;
tulanthoar 6:14929f54ed6f 69 ledBar.ten_set(knob_led_bar);
tulanthoar 15:abda719ba6e6 70 disp.set_integer(floor(IRTempSensor::measuresureTemp(PA_3)));
tulanthoar 15:abda719ba6e6 71 /* disp.set_integer(led_percent); */
tulanthoar 6:14929f54ed6f 72 int eightBitInput = led_frac * 255;
tulanthoar 6:14929f54ed6f 73 led_chain.set_color_rgb(eightBitInput, eightBitInput, eightBitInput);
tulanthoar 15:abda719ba6e6 74 rgb_led.set_color_rgb(50,eightBitInput,10);
tulanthoar 15:abda719ba6e6 75 Thread::wait(1000);
tulanthoar 4:d540dccad60a 76 }
tulanthoar 15:abda719ba6e6 77 return 1;
tulanthoar 4:d540dccad60a 78 }