Advertisement
Guest User

teste

a guest
Sep 18th, 2019
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.62 KB | None | 0 0
  1.  
  2. //motor_A
  3. int IN1 = 2 ; // pino digital 2 ligado da Enable 1 da ponte h
  4. int IN2 = 4 ; // pino digital 2 ligado no Enable 2 da ponte h
  5. int velocidadeA = 3; // pino digital 3 ligado ao pino de pwm da ponte h
  6.  
  7. /*Os pinos 2 e 4 controlam o sentido de rotação do motor A, enquanto que o pino 3 e o sinal pwm que controla a velocidade do motor
  8.  
  9. A tabela verdade e o seguinte
  10.  
  11. IN1 1N2 Estado
  12.  
  13. 0v 0v Desligado
  14. 0v 5v Sentido horario
  15. 5v 0v Sentido anti-horario
  16. 5v 5v Desligado
  17.  
  18. A mesma tabela vale para o motor 2, podemos entao criar funcoes para escolher o sentido do motor
  19.  
  20. void gira_motor(int motor, int sentido)
  21. {
  22.  
  23. if( motor == 1) //caso a variavel motor seja 1
  24. {
  25. if (sentido == 1)
  26. {
  27. digitalWrite(IN1, LOW);
  28. digitalWrite(IN2, HIGH);
  29. }
  30. else
  31. {
  32. if (sentido == 2)
  33. {
  34. digitalWrite(IN1, HIGH);
  35. digitalWrite(IN2, LOW);
  36. }
  37. else
  38. {
  39. digitalWrite(IN1, LOW);
  40. digitalWrite(IN2, LOW);
  41.  
  42. }
  43. }
  44.  
  45. }
  46. else//quer dizer que foi selecionado o motor 2
  47. {
  48.  
  49. if (sentido == 1)
  50. {
  51. digitalWrite(IN3, LOW);
  52. digitalWrite(IN4, HIGH);
  53. }
  54. else
  55. {
  56. if (sentido == 2)
  57. {
  58. digitalWrite(IN3, HIGH);
  59. digitalWrite(IN4, LOW);
  60. }
  61. else
  62. {
  63. digitalWrite(IN3, LOW);
  64. digitalWrite(IN4, LOW);
  65.  
  66. }
  67. }
  68.  
  69. }
  70.  
  71.  
  72. }
  73.  
  74. */
  75.  
  76.  
  77. //motor_B
  78.  
  79. //Os pinos 2 e 4 controlam o sentido de rotação do motor A, enquanto que o pino 3 e o sinal pwm que controla a velocidade do motor
  80.  
  81. int IN3 = 6 ; // pino digital 6 ligado da Enable 2 da ponte h
  82. int IN4 = 7 ; //pino digital 7 ligado no Enable 2 da ponte h
  83. int velocidadeB = 5; // pino digital 5 ligado ao pino de pwm da ponte h
  84.  
  85.  
  86.  
  87. //variavel auxiliar
  88. int velocidade = 127;
  89.  
  90. //Inicializa Pinos
  91. void setup(){
  92.  
  93. //No setup realizamos as configurações dos nossos pinos
  94.  
  95. //motor1
  96.  
  97. pinMode(IN1,OUTPUT); //configura o pinot IN1 como saida
  98. pinMode(IN2,OUTPUT); //""
  99. pinMode(IN3,OUTPUT); //""
  100. pinMode(IN4,OUTPUT); //""
  101.  
  102. pinMode(velocidadeA,OUTPUT); //pinos de pwm
  103. pinMode(velocidadeB,OUTPUT); //pinos de pwm
  104.  
  105.  
  106. analogWrite(velocidadeA,velocidade);
  107. analogWrite(velocidadeB,velocidade);
  108.  
  109.  
  110.  
  111. Serial.begin(9600);
  112.  
  113. }
  114.  
  115. void loop(){
  116.  
  117. //Aqui configurações o que nosso arduino fara em loop
  118. //com este modelo de codigo voce envia o dado via serial monitor e altera em tempo real no arduino
  119.  
  120. if (Serial.available()) //se byte pronto para leitura
  121. {
  122. switch(Serial.read()) //verifica qual caracter recebido
  123. {
  124. case 'a': //caso 'A'
  125.  
  126. //liga o motor 1 no sentido horario
  127. Serial.println("Motor 1 ativo, sentido horario");
  128. gira_motor(1, 1);
  129.  
  130. break;
  131.  
  132. case 'b':
  133. // liga o motor 1 no sentido anti horario
  134. Serial.println("Motor 1 ativo, sentido anti horario");
  135.  
  136. gira_motor(1, 2);
  137. break;
  138.  
  139. case 'c':
  140. //desliga o motor1
  141. Serial.println("Motor 1 desligado");
  142.  
  143. gira_motor(1, 0);
  144. break;
  145.  
  146.  
  147. //Acoes para o motor 2
  148.  
  149. case 'd':
  150.  
  151. //liga o motor 1 no sentido horario
  152. Serial.println("Motor 2 ativo, sentido horario");
  153.  
  154. gira_motor(2, 1);
  155.  
  156. break;
  157.  
  158. case 'e':
  159. // liga o motor 1 no sentido anti horario
  160. Serial.println("Motor 2 ativo, sentido anti horario");
  161.  
  162. gira_motor(2, 2);
  163. break;
  164.  
  165. case 'f':
  166. //desliga o motor1
  167. Serial.println("Motor 2 desligado");
  168.  
  169. gira_motor(2, 0);
  170. break;
  171.  
  172. }
  173.  
  174.  
  175.  
  176. }
  177. }
  178.  
  179.  
  180. //funcao gira_motor, para usa-la informe um numero para o motor(1 ou 2), e numero para sentido(1, horario, 2, anti horario, 0, desligado);
  181.  
  182. void gira_motor(int motor, int sentido)
  183. {
  184.  
  185. if( motor == 1) //caso a variavel motor seja 1
  186. {
  187. if (sentido == 1)
  188. {
  189. digitalWrite(IN1, LOW);
  190. digitalWrite(IN2, HIGH);
  191. }
  192. else
  193. {
  194. if (sentido == 2)
  195. {
  196. digitalWrite(IN1, HIGH);
  197. digitalWrite(IN2, LOW);
  198. }
  199. else
  200. {
  201. digitalWrite(IN1, LOW);
  202. digitalWrite(IN2, LOW);
  203.  
  204. }
  205. }
  206.  
  207. }
  208. else//quer dizer que foi selecionado o motor 2
  209. {
  210.  
  211. if (sentido == 1)
  212. {
  213. digitalWrite(IN3, LOW);
  214. digitalWrite(IN4, HIGH);
  215. }
  216. else
  217. {
  218. if (sentido == 2)
  219. {
  220. digitalWrite(IN3, HIGH);
  221. digitalWrite(IN4, LOW);
  222. }
  223. else
  224. {
  225. digitalWrite(IN3, LOW);
  226. digitalWrite(IN4, LOW);
  227.  
  228. }
  229. }
  230.  
  231. }
  232.  
  233.  
  234. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement