Advertisement
Coriic

Mikro

May 26th, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.46 KB | None | 0 0
  1. byte hexadecimalNumbers[16][7] = { { 0,0,0,0,0,0,1},  // = 0
  2.                                   { 1,0,0,1,1,1,1 },  // = 1
  3.                                   { 0,0,1,0,0,1,0 },  // = 2
  4.                                   { 0,0,0,0,1,1,0 },  // = 3
  5.                                   { 1,0,0,1,1,0,0 },  // = 4
  6.                                   { 0,1,0,0,1,0,0 },  // = 5
  7.                                   { 0,1,0,0,0,0,0 },  // = 6
  8.                                   { 0,0,0,1,1,1,1 },  // = 7
  9.                                   { 0,0,0,0,0,0,0 },  // = 8
  10.                                   { 0,0,0,1,1,0,0 },  // = 9
  11.                                   { 0,0,0,1,0,0,0 },  // = A
  12.                                   { 0,0,0,0,0,0,0 },  // = B
  13.                                   { 0,1,1,0,0,0,1 },  // = C
  14.                                   { 0,0,0,0,0,0,1 },  // = D
  15.                                   { 0,1,1,0,0,0,0 },  // = E
  16.                                   { 0,1,1,1,0,0,0 }   // = F
  17. };
  18.  
  19. void setup() {                
  20.   pinMode(2, OUTPUT);  
  21.   pinMode(3, OUTPUT);
  22.   pinMode(4, OUTPUT);
  23.   pinMode(5, OUTPUT);
  24.   pinMode(6, OUTPUT);
  25.   pinMode(7, OUTPUT);
  26.   pinMode(8, OUTPUT);
  27.  
  28.   pinMode(9, OUTPUT);
  29.   pinMode(10, OUTPUT);
  30.   pinMode(11, OUTPUT);
  31.   pinMode(12, OUTPUT);
  32.   digitalWrite(9, LOW);
  33.   digitalWrite(10, LOW);
  34.   digitalWrite(11, LOW);
  35.   digitalWrite(12, LOW);
  36.   Serial.begin(9600);
  37. }
  38.    
  39. void sevenSegWrite(byte digit) {
  40.   byte pin = 2;
  41.   for (byte segCount = 0; segCount < 7; ++segCount) {
  42.     digitalWrite(pin, hexadecimalNumbers[digit][segCount]);
  43.     ++pin;
  44.   }
  45. }
  46.  
  47. void checkIfCorrectCommand(char firstCharacter){
  48.   if(firstCharacter == "T"){
  49.     numbersToDisplay();
  50.   }
  51.   else if(firstCharacter == "D"){
  52.     timeOfDisplaying();
  53.   }
  54.   else if(firstCharacter == "B"){
  55.     brightnessOfSegments();
  56.   }
  57.   else{
  58.     Serial.println("Unknown command");
  59.   }
  60. }
  61.  
  62. void numbersToDisplay(){
  63.   String numbersSequence = Serial.readString();
  64.   if(numbersSequence.length() == 6){
  65.     char characterToTest;
  66.     for(int i = 0; i<6; i++){
  67.       characterToTest = numbersSequence.charAt(i);
  68.       if((characterToTest>='a' && characterToTest<='f') ||
  69.         (characterToTest>='A' && characterToTest<='F') ||
  70.         (characterToTest>='0' && characterToTest<='9')){
  71.           //TO DO
  72.         }
  73.       else{
  74.         Serial.println("Wrong sequence of characters");
  75.       }
  76.     }
  77.   }
  78. }
  79.  
  80. void timeOfDisplaying(){
  81.   String time = Serial.readString();
  82.   if(time.length() == 4){
  83.     char characterToTest;
  84.     for(int i = 0; i<4; i++){
  85.       characterToTest = time.charAt(i);
  86.       if((characterToTest>='0' && characterToTest<='9' && i!=0)
  87.       || (characterToTest>='1' && characterToTest<='9' && i==0)){
  88.           //TO DO
  89.       }
  90.       else{
  91.         Serial.println("Wrong sequence of characters");
  92.       }
  93.     }
  94.   }
  95.   else{
  96.     Serial.println("Too few characters");
  97.   }
  98. }
  99.  
  100. void brightnessOfSegments(){
  101.   String brightness = Serial.readString();
  102.   if(brightness.length() == 4){
  103.     char characterToTest;
  104.     for(int i = 0; i<4; i++){
  105.       characterToTest = brightness.charAt(i);
  106.       if(characterToTest>='0' && characterToTest<='2'){
  107.           //TO DO
  108.       }
  109.       else{
  110.         Serial.println("Wrong sequence of characters");
  111.       }
  112.     }
  113.   }
  114.   else{
  115.     Serial.println("Too few characters");
  116.   }
  117. }
  118.  
  119. void loop() {
  120.   if(Serial.available() > 0){
  121.     for(int i=15; i>=0; i--){
  122.       delay(1000);
  123.       sevenSegWrite(i);
  124.     }
  125.   }  
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement