Servo that turns towards heat source with temperature reading display.

Dependencies:   mbed

display.cpp

Committer:
mchristianson21
Date:
2019-01-14
Revision:
12:8d7a4644cc39
Parent:
1:596a2915f7a2
Child:
14:5831b2b375e7

File content as of revision 12:8d7a4644cc39:

#include "display.h"
#include "tempSnsr.h"

BusOut display(p5, p6, p7, p8, p9, p10, p11, p12);
AnalogOut transistor1(p19);
AnalogOut transistor2(p20);

float highTemp()
float dt = 0.01;

void sevSegDisplay()  {
int firstNum = (int highTemp() % 100) / 10;  // Tens place digit for left seven segment display
int secondNum = (int highTemp() % 10);     // ones place digit for right seven segment display
while (true) {
    transistor1 = 1;    // turn on left display
    transistor2 = 0;    // turn off right display
    display = sevenSegConvert(firstNum);  // displays tens digit
    wait(dt);
    transistor1 = 0;   // turn off left display
    transistor2 = 1;   // turn on right display
    display = sevenSegConvert(secondNum);  // displays ones digit
    wait(dt);
    }
}

int sevenSegConvert(int n) {  // translates temperature number to seven segment display LEDs
  int code;
  switch (n) {
    case 0: code = 0x3F; break;
    case 1: code = 0x06; break;
    case 2: code = 0x5B; break;
    case 3: code = 0x4F; break;
    case 4: code = 0x66; break;
    case 5: code = 0x6D; break;
    case 6: code = 0x7D; break;
    case 7: code = 0x07; break;
    case 8: code = 0x7F; break;
    case 9: code = 0x6F; break;
    default: code = 0x00;
  }
  return code;