Advertisement
Guest User

Anguloservo

a guest
Oct 21st, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. #include <Dhcp.h>
  2. #include <Dns.h>
  3. #include <Ethernet.h>
  4. #include <EthernetClient.h>
  5. #include <EthernetServer.h>
  6. #include <EthernetUdp.h>
  7.  
  8. #include<stdlib.h>
  9. #include<Servo.h>
  10. #include<Ultrasonic.h>
  11.  
  12. #define SERVO 9 // Porta Digital 9 PWM
  13.  
  14. //const int analogPin = A0;
  15. float analogPin = A0;
  16. int value; //
  17. //float value;
  18. float position; //Posição do potenciometro em porcento
  19. float leitura_distancia = 0;
  20.  
  21. Servo s; // Variável Servo
  22. float setPoint; // Posição Servo
  23. float resultado;
  24.  
  25.  
  26. void setup ()
  27. {
  28. s.attach(SERVO);
  29. Serial.begin(65000);
  30. s.write(10); // Inicia motor posição zero
  31. }
  32.  
  33. void loop()
  34. {
  35.  
  36. for(setPoint = 10; setPoint < 100; setPoint = setPoint + 30)
  37. {
  38. s.write(setPoint);
  39. //Serial.print("Posição: ");
  40. //Serial.println(setPoint);
  41.  
  42. value = analogRead(analogPin); // realiza a leitura analógica raw
  43. position = map(value, 0, 1023, 0, 110); // converte o percentual
  44. leitura_distancia = position;
  45. //leitura_distancia = setPoint - resultado;
  46. //Serial.print("Distancia Cm: ");
  47. //Serial.println(leitura_distancia); //
  48.  
  49. dados_seriais(setPoint,leitura_distancia,resultado);
  50.  
  51. delay(700);
  52. }
  53.  
  54. //dados_seriais(leitura_distancia,setPoint,resultado);
  55.  
  56. delay(10);
  57.  
  58. for(setPoint = 100; setPoint >= 10; setPoint = setPoint - 30)
  59. {
  60. s.write(setPoint);
  61. //Serial.print("Posição: ");
  62. //Serial.println(setPoint);
  63.  
  64. value = analogRead(analogPin); // Realiza a leitura analogica
  65. position = map(value, 0, 1023, 0, 110); // Converte para percentual de angulo
  66. leitura_distancia = position;
  67. //leitura_distancia = setPoint - resultado;
  68. //Serial.print("Distancia Cm: ");
  69. //Serial.println(leitura_distancia);
  70.  
  71. dados_seriais(setPoint,leitura_distancia,resultado);
  72.  
  73. delay(700);
  74. }
  75. }
  76. void dados_seriais(float e1, float e2, float e3)
  77. {
  78. char ee1[10]; //Carrega o set point
  79. char ee2[10]; //temporarily holds data from vals
  80. char ee3[10]; //temporarily holds data from vals
  81. dtostrf(e1, 4, 4, ee1); //4 is mininum width, 4 is precision; float value is copied onto buff
  82. dtostrf(e2, 4, 4, ee2); //4 is mininum width, 4 is precision; float value is copied onto buff
  83. dtostrf(e3, 4, 4, ee3); //4 is mininum width, 4 is precision; float value is copied onto buff
  84.  
  85. Serial.print(ee1); // Envia o setpoint pela serial
  86. Serial.print(",");
  87. Serial.print(ee2); // Envia o valor lido pelo sensor pela serial
  88. Serial.print(",");
  89. Serial.print(ee3); // Envia o erro pela serial
  90. Serial.print(",");
  91. Serial.println("");
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement