Advertisement
Guest User

Untitled

a guest
Dec 17th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.83 KB | None | 0 0
  1. #define OnOffPin 50  //definicje pinów przycisków
  2. #define ModePin 25
  3. #define RecordPin 40
  4. #define ZoomPlusPin 20
  5. #define ZoomNegativePin 15
  6.  
  7. #define OnOffCam 22  //definicje pinów kamery
  8. #define ModeCam 23
  9. #define RecordCam 24
  10. #define ZoomPlusCam 19
  11. #define ZoomNegativeCam 16
  12.  
  13.  
  14. int ModeType = 0;
  15. int ifON = 0;
  16. int ifRec = 0;
  17.  
  18.  
  19. int checkPin(){
  20.  
  21.   if(check(OnOffPin)==1){
  22.     return 1;
  23.   }else{
  24.     if(check(ModePin)==1){
  25.     return 2;
  26.   }else{
  27.     if(check(RecordPin)==1){
  28.     return 3;
  29.   }else{
  30.     return 0;
  31.   }
  32.   }
  33.   }
  34.  
  35.  
  36. }
  37.  
  38. void zoomCheck(int mode){
  39.   if(mode == 0 || mode == 1){
  40.     if(digitalRead(ZoomPlusPin) == LOW){
  41.       delay(70);
  42.       if(digitalRead(ZoomPlusPin) == LOW){
  43.       zoomPut(1);
  44.       }
  45.     }
  46.    
  47.       if(digitalRead(ZoomNegativePin) == LOW){
  48.       delay(70);
  49.       if(digitalRead(ZoomNegativePin) == LOW){
  50.       zoomPut(2);
  51.       }
  52.     }
  53.    
  54.      
  55.       if(digitalRead(ZoomNegativePin) == HIGH && digitalRead(ZoomPlusPin) == HIGH){
  56.       delay(70);
  57.       if(digitalRead(ZoomNegativePin) == HIGH && digitalRead(ZoomPlusPin) == HIGH){
  58.       zoomPut(0);
  59.       }
  60.     }
  61.   }
  62. }
  63.  
  64. int zoomPut(int value){
  65.   if(value == 2){
  66.     digitalWrite(ZoomPlusCam, LOW);
  67.     digitalWrite(ZoomNegativeCam, HIGH);
  68.     Serial.println("Zoom -");
  69.   }
  70.   if(value == 1){
  71.     digitalWrite(ZoomNegativeCam, LOW);
  72.     digitalWrite(ZoomPlusCam, HIGH);
  73.     Serial.println("Zoom +");
  74.   }else{
  75.     if(value == 0){
  76.       digitalWrite(ZoomPlusCam, LOW);
  77.       digitalWrite(ZoomNegativeCam, LOW);
  78.     }
  79.   }  
  80.  
  81. }
  82. //funkcja sprawdzająca czy na pinie jest stan wysoki i zwracająca  wartość po puszczeniu przycisku, dodatkowo uwzględnia drgania styków
  83. int check(int pin){
  84.   if(digitalRead(pin) == LOW){
  85.     delay(70);
  86.     if(digitalRead(pin) == LOW){
  87.       while(digitalRead(pin) == LOW){
  88.         delay(1);
  89.       }
  90.      
  91.       return 1;
  92.     }else{
  93.       return 0;
  94.     }
  95.    
  96.   }else{
  97.     return 0;
  98.   }
  99.  
  100. }
  101.  
  102. //funkcja zapisująca do kamery
  103. int saveCam(int pinCam){
  104.     switch (pinCam) {
  105.     case 1:
  106.       ModeType = 0;
  107.       digitalWrite(OnOffCam, HIGH);
  108.       delay(250);
  109.       digitalWrite(OnOffCam, LOW);
  110.       if(ifON == 0){
  111.         ifON = 1;
  112.         Serial.println("Wlaczono kamere");
  113.       }else{
  114.         ifON = 0;
  115.         Serial.println("Wylaczono kamere");
  116.       }    
  117.       break;
  118.     case 2:
  119.       digitalWrite(ModeCam, HIGH);
  120.       delay(250);
  121.       digitalWrite(ModeCam, LOW);
  122.       if(ModeType<2){
  123.         ModeType++;
  124.       }else{
  125.         ModeType = 0;
  126.       }
  127.      
  128.       if(ModeType==0)
  129.         Serial.println("Tryb aparat");
  130.        
  131.        if(ModeType==1)
  132.         Serial.println("Tryb kamera");
  133.        
  134.        if(ModeType==2)
  135.         Serial.println("Tryb dyktafon");
  136.       break;
  137.     case 3:
  138.       digitalWrite(RecordCam, HIGH);
  139.       delay(250);
  140.       digitalWrite(RecordCam, LOW);
  141.         if(ifRec==0 && ModeType!=0){
  142.           ifRec=1;
  143.           Serial.println("Rozpoczeto nagrywanie");
  144.         }else{
  145.          if(ifRec==1 && ModeType!=0){
  146.           ifRec=0;
  147.           Serial.println("Wylaczono nagrywanie");
  148.         }else{
  149.           Serial.println("Zrobiono zdjecie");
  150.         }
  151.         }
  152.  
  153.     break;
  154.  
  155.   }
  156.  
  157. }
  158.  
  159.  
  160.  
  161. void setup() {
  162.   Serial.begin(9600);
  163.   pinMode(OnOffPin, INPUT_PULLUP); //domyślnie wartosć HIGHT bo piny podciągnięte do VCC
  164.   pinMode(ModePin, INPUT_PULLUP);
  165.   pinMode(RecordPin, INPUT_PULLUP);
  166.   pinMode(ZoomNegativePin, INPUT_PULLUP);
  167.   pinMode(ZoomPlusPin, INPUT_PULLUP);
  168.  
  169.   pinMode(OnOffCam, OUTPUT);
  170.   pinMode(ModeCam, OUTPUT);
  171.   pinMode(RecordCam, OUTPUT);
  172.   pinMode(ZoomNegativeCam, OUTPUT);
  173.   pinMode(ZoomPlusCam, OUTPUT);
  174.   Serial.println("Witaj w sterowaniu kamera!");
  175. }
  176.  
  177.  
  178.  
  179. //właściwa funkcja programu
  180. void loop() {
  181.    saveCam(checkPin());
  182.    zoomCheck(ModeType);
  183.    
  184.  
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement