Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LedControl.h>
- #include <LedPrint.h>
- #include <LedPrintJustifiable.h>
- #include <ResponsiveAnalogRead.h>
- #include <AccelStepper.h>
- #include <Pushbutton.h>
- //Pushbutton Library
- #define DEFAULT_STATE_HIGH 1 // Estado não pressionado do botão é HIGH
- #define PULL_UP_ENABLED 1 // Habilita resistor pull-up
- //
- #define sensorBrochaPin 8 // Sensor passagem da brocha
- #define ledtest 2
- #define set_Bot A4 // Botão para ativar teclado e entrar com novos valores
- boolean set_State = 0; //Estado do botão setar valores
- boolean tudoSetado = false;
- float v1 = 0;
- int v2 = 0;
- float avanco = 0;
- int passes = 0;
- unsigned long previousMillis = 0;
- //LedPrint (objeto do display max7219)
- LedPrintJustifiable myLed = LedPrintJustifiable(
- A3, // DATA PIN
- 13, // CLOCK PIN
- A5, // CS PIN
- 6, // NUMBER OF DIGITS
- 0 // Orientation 0/1, if it looks backwards try the other
- );
- LedPrint disAvanco;
- LedPrint disPasses;
- //LedPrint
- //Potenciometros (input, sleep (true/false),resposta)
- ResponsiveAnalogRead avancoPot(A0, true, 0.005);
- ResponsiveAnalogRead passesPot(A1, true, 0.005);
- //Valores mais altos aumentam a resposta e consequentemente ruido dos potenciometros
- //Pushbutton
- Pushbutton button(sensorBrochaPin); //Instancia o sensor da brocha
- Pushbutton buttonSet(set_Bot); //Instancia botão setar valores
- AccelStepper stepper(AccelStepper ::DRIVER, 4, 3); //Pinos 4 e 3 usados para step e dir respectivamente
- void setup() {
- // Define brilho e instancias dos sub-displays
- myLed.setIntensity(5);
- myLed.justify(0);
- disAvanco = myLed.getSubDisplay(0, 3); // First digit 0, 3 digits
- disPasses = myLed.getSubDisplay(3, 3); // First digit 3, 3 digits
- stepper.setMaxSpeed(35000); //Determina velocidade maxima do motor
- stepper.setSpeed(30000);
- stepper.setAcceleration(25000); //Determina aceleração do motor, funciona em todo código
- stepper.setMinPulseWidth(13); //Largura do pulso step
- stepper.setCurrentPosition(0); //Zera posição atual
- pinMode(sensorBrochaPin, INPUT_PULLUP); //Pino do sensor da mesa como entrada pullup
- pinMode(set_Bot, INPUT_PULLUP); //Pino do botão que habilita a entreda de valroes pelo teclado como entrada pullup
- pinMode(ledtest, OUTPUT);
- }
- void loop()
- {
- //Leitura e exibição dos valores, enquanto eles não forem confirmados
- while (tudoSetado == false)
- {
- piscaLed(); //Pisca o led aguardando confirmação dos valores
- passesPot.update(); avancoPot.update(); //Realiza leitura dos potenciometros
- v2 = passesPot.getValue(); v1 = avancoPot.getValue();
- passes = map(v2, 0, 1023, 0, 100);
- avanco = map(v1, 0, 1023, 0, 200);
- disAvanco.println(avanco);
- disPasses.println(passes);
- }
- }
- void piscaLed() {
- unsigned long currentMillis = millis();
- if (currentMillis - previousMillis >= 100) {
- // save the last time you blinked the LED
- previousMillis = currentMillis;
- //digitalWrite(ledtest, LOW);
- //Pisca led para indicar leitura de valores pelos potenciometros e aguardando a confirmação
- if (!digitalRead(ledtest))
- {
- digitalWrite(ledtest, HIGH);
- } else
- {
- digitalWrite(ledtest, LOW);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement