Advertisement
Guest User

Untitled

a guest
Jul 24th, 2023
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Arduino 3.41 KB | Software | 0 0
  1. #include <LedControl.h>
  2. #include <LedPrint.h>
  3. #include <LedPrintJustifiable.h>
  4. #include <ResponsiveAnalogRead.h>
  5. #include <AccelStepper.h>
  6. #include <Pushbutton.h>
  7.  
  8. //Pushbutton Library
  9. #define DEFAULT_STATE_HIGH 1  // Estado não pressionado do botão é HIGH
  10. #define PULL_UP_ENABLED 1     // Habilita resistor pull-up
  11. //
  12.  
  13. #define sensorBrochaPin 8  // Sensor passagem da brocha
  14. #define ledtest 2
  15. #define set_Bot A4  // Botão para ativar teclado e entrar com novos valores
  16.  
  17. boolean set_State = 0;  //Estado do botão setar valores
  18. boolean tudoSetado = false;
  19.  
  20. float v1 = 0;
  21. int v2 = 0;
  22. float avanco = 0;
  23. int passes = 0;
  24.  
  25. unsigned long previousMillis = 0;
  26.  
  27. //LedPrint (objeto do display max7219)
  28. LedPrintJustifiable myLed = LedPrintJustifiable(
  29.                               A3, // DATA PIN
  30.                               13,  // CLOCK PIN
  31.                               A5,  // CS PIN
  32.                               6,   // NUMBER OF DIGITS
  33.                               0    // Orientation 0/1, if it looks backwards try the other
  34.                             );
  35.  
  36.  
  37. LedPrint disAvanco;
  38. LedPrint disPasses;
  39. //LedPrint
  40.  
  41. //Potenciometros (input, sleep (true/false),resposta)
  42. ResponsiveAnalogRead avancoPot(A0, true, 0.005);
  43. ResponsiveAnalogRead passesPot(A1, true, 0.005);
  44. //Valores mais altos aumentam a resposta e consequentemente ruido dos potenciometros
  45.  
  46. //Pushbutton
  47. Pushbutton button(sensorBrochaPin);  //Instancia o sensor da brocha
  48. Pushbutton buttonSet(set_Bot);       //Instancia botão setar valores
  49.  
  50. AccelStepper stepper(AccelStepper ::DRIVER, 4, 3);  //Pinos 4 e 3 usados para step e dir respectivamente
  51.  
  52.  
  53.  
  54. void setup() {
  55.  
  56.   // Define brilho e instancias dos sub-displays
  57.   myLed.setIntensity(5);
  58.   myLed.justify(0);
  59.  
  60.   disAvanco = myLed.getSubDisplay(0, 3);  // First digit 0, 3 digits
  61.   disPasses = myLed.getSubDisplay(3, 3);   // First digit 3, 3 digits
  62.  
  63.   stepper.setMaxSpeed(35000);  //Determina velocidade maxima do motor
  64.   stepper.setSpeed(30000);
  65.   stepper.setAcceleration(25000);          //Determina aceleração do motor, funciona em todo código
  66.   stepper.setMinPulseWidth(13);            //Largura do pulso step
  67.   stepper.setCurrentPosition(0); //Zera posição atual
  68.   pinMode(sensorBrochaPin, INPUT_PULLUP);  //Pino do sensor da mesa como entrada pullup
  69.   pinMode(set_Bot, INPUT_PULLUP);          //Pino do botão que habilita a entreda de valroes pelo teclado como entrada pullup
  70.   pinMode(ledtest, OUTPUT);
  71. }
  72.  
  73. void loop()
  74. {
  75.   //Leitura e exibição dos valores, enquanto eles não forem confirmados
  76.   while (tudoSetado == false)
  77.   {
  78.     piscaLed(); //Pisca o led aguardando confirmação dos valores  
  79.     passesPot.update(); avancoPot.update();  //Realiza leitura dos potenciometros
  80.     v2 = passesPot.getValue(); v1 = avancoPot.getValue();
  81.     passes = map(v2, 0, 1023, 0, 100);
  82.     avanco = map(v1, 0, 1023, 0, 200);
  83.     disAvanco.println(avanco);
  84.     disPasses.println(passes);
  85.    
  86.    
  87.   }
  88.  
  89.  
  90.  
  91. }
  92.  
  93. void piscaLed() {
  94.   unsigned long currentMillis = millis();
  95.   if (currentMillis - previousMillis >= 100) {
  96.     // save the last time you blinked the LED
  97.     previousMillis = currentMillis;
  98.     //digitalWrite(ledtest, LOW);
  99.  
  100.     //Pisca led para indicar leitura de valores pelos potenciometros e aguardando a confirmação
  101.     if (!digitalRead(ledtest))
  102.     {
  103.       digitalWrite(ledtest, HIGH);
  104.     } else
  105.     {
  106.       digitalWrite(ledtest, LOW);
  107.     }
  108.   }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement