luishenriique

Magnetic Hammer

Oct 22nd, 2013
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.41 KB | None | 0 0
  1. #include <Servo.h>
  2.  
  3. Servo myservo;
  4.  
  5. const int buttonPin = 8;  // Pino de entrada para ligar o sistema
  6. const int servoPin = 7;  // Pino de saída para controlar o servo motor
  7. const int imaPin =  13;  // Pino de saída para controlar o eletroímã
  8.  
  9. int buttonState = 0;
  10. int pos = 10; // Posição inicial do servo
  11.  
  12. /**
  13. * Função que controla todo o sistema.
  14. * Dependendo do estado do botão
  15. * a função define o que deve ser feito.
  16. */
  17. void button() {
  18.   buttonState = digitalRead(buttonPin);
  19.  
  20.   // Quando a entrada recebe um pulso de sinal
  21.   if (buttonState == HIGH) {    
  22.     digitalWrite(imaPin, HIGH);  // Liga o eletroímã
  23.     servo();  // Então chama a função servo
  24.   }
  25.   else {
  26.     digitalWrite(imaPin, LOW);
  27.   }
  28. }
  29.  
  30. /**
  31. * Função que controla o servo motor.
  32. * Quando é chamada, faz o movimento
  33. * de martelar e voltar ao estado inicial.
  34. */
  35. void servo() {
  36.   delay(2000);
  37.   // Inicia o movimento de martelar
  38.   for(pos = 10; pos < 180; pos++){
  39.     myservo.write(pos);
  40.     delay(1);
  41.   }
  42.   delay(1000);
  43.   // Quando o movimento está completo
  44.   digitalWrite(imaPin, LOW);  // Desliga o eletroímã
  45.   delay(1000);
  46.   // Volta para a posição inicial
  47.   for(pos = 180; pos >= 10; pos--){
  48.     myservo.write(pos);
  49.     delay(5);
  50.   }
  51. }
  52.  
  53. void setup() {
  54.   pinMode(servoPin, OUTPUT);
  55.   pinMode(imaPin, OUTPUT);
  56.   pinMode(buttonPin, INPUT);
  57.   myservo.attach(7);
  58. }
  59.  
  60. void loop(){
  61.   button();
  62. }
Advertisement
Add Comment
Please, Sign In to add comment