Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 KB | None | 0 0
  1. #include <Servo.h>
  2. Servo servo1;
  3.  
  4.  
  5. #define RELE1 12
  6. #define RELE2 13
  7. #define pinBit01 3 // Q0
  8. #define pinBit02 4 // Q1
  9. #define pinBit03 5 // Q2
  10. #define pinBit04 6 // Q3
  11. #define pinBitStd 7 // STD
  12.  
  13. int tecla = 0;
  14. int servoAngle; //POSIÇÃO DO SERVO
  15. int bit01 = 0;
  16. int bit02 = 0;
  17. int bit03 = 0;
  18. int bit04 = 0;
  19. int bitStd= 0;
  20.  
  21. int val = 0;
  22.  
  23. void setup() {
  24. Serial.begin(9600); // Iniciamos a Serial com Baudrate 9600
  25. servo1.attach(9);
  26. servo1.write(servoAngle);
  27. pinMode(RELE1, OUTPUT); // Definimos o pino do Relé como Saída
  28. pinMode(RELE2, OUTPUT); // Definimos o pino do Relé como Saída
  29. digitalWrite(RELE1, LOW);
  30. digitalWrite(RELE2, LOW);
  31. }
  32.  
  33. void loop(){
  34. bitStd = digitalRead(pinBitStd); //Lê o estado do pino STD e armazena em 'bitStd'
  35.  
  36. if (bitStd == HIGH) {//Se estiver em nível alto fará as leituras
  37. //dos bits dos pinos Q3, Q2, Q1 e Q0
  38.  
  39. bit01 = digitalRead(pinBit01);
  40. bit02 = digitalRead(pinBit02);
  41. bit03 = digitalRead(pinBit03);
  42. bit04 = digitalRead(pinBit04);
  43.  
  44. tecla = (bit04 * 8) + (bit03 * 4) + (bit02 * 2) + (bit01 * 1);//Conversão binária para
  45. //decimal (ver Vídeo1)
  46.  
  47. Serial.print("Recebido: "); // Exibe a mensagem
  48.  
  49.  
  50. if(tecla == 1)
  51.  
  52. {
  53. if (val == LOW) {
  54.  
  55. Serial.println("1");
  56. digitalWrite(RELE1, HIGH);
  57. for(servoAngle = 0; servoAngle < 65; servoAngle++){ //PARA ANGULO IGUAL A 0, ENQUANTO O ANGULO FOR MENOR QUE 180, INCREMENTA O ANGULO
  58. servo1.write(servoAngle); //GIRA O SERVO NO VALOR ATUAL DA VARIÁVEL servoAngle
  59. delay(25); //INTERVALO DE 25 MILISSEGUNDOS
  60. }
  61. digitalWrite(RELE2, HIGH);
  62. delay(2000);
  63. digitalWrite(RELE2, LOW);
  64. delay(5000);
  65. for(servoAngle = 65; servoAngle < 180; servoAngle++){ //PARA ANGULO IGUAL A 0, ENQUANTO O ANGULO FOR MENOR QUE 180, INCREMENTA O ANGULO
  66. servo1.write(servoAngle); //GIRA O SERVO NO VALOR ATUAL DA VARIÁVEL servoAngle
  67. delay(25); //INTERVALO DE 25 MILISSEGUNDOS
  68. }
  69. }
  70. val= 1;
  71. }
  72.  
  73. else if (tecla == 2) {
  74. if (val == HIGH) {
  75. Serial.println("2");
  76. for(servoAngle = 180; servoAngle > 0; servoAngle--){ //PARA ANGULO IGUAL A 180, ENQUANTO O ANGULO FOR MENOR QUE 0, INCREMENTA O ANGULO
  77. servo1.write(servoAngle); //GIRA O SERVO NO VALOR ATUAL DA VARIÁVEL servoAngle
  78. delay(25); //INTERVALO DE 25 MILISSEGUNDOS
  79. }
  80. digitalWrite(RELE1, LOW);
  81. val= 0;
  82. }
  83. }
  84. else if (tecla == 3) {
  85. Serial.println("3");
  86. }
  87. else if (tecla == 4) {
  88. Serial.println("4");
  89. }
  90. // Zeram-se todas as variáveis
  91. tecla = 0;
  92. bit01 = 0;
  93. bit02 = 0;
  94. bit03 = 0;
  95. bit04 = 0;
  96. bitStd= 0;
  97. delay (500); // Aguarda 500 milissegundos
  98. } // Sai do switch
  99. } // Volta pro loop...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement