Skocz do zawartości

Sterownik lasera z przełączaniem TTL/ANALOG


Pomocna odpowiedź

Marku1707 dziękuję za  odzew..

Schemat układu  , kod programu, (wsad do arduino nano)  oraz zdjęcie płytki wrzuciłem kilka postów wyżej...

W kodzie nic nie zmieniłem .
Chciałbym właśnie podejrzeć wartość zmiennej "pulseCounter " w monitorze portu szeregowego  w czasie rzeczywistym,  ale nie mam  pojęcia jak to można osiągnąć  z poziomu kodowania. Mogę jedynie  obserwować wartość napięcia na wyjściu taktowaną impulsami  , a ta zmienia się nie liniowo  tak jak opisałem.

Pozdrawiam

Aktualny kod:

/* This program is deigned to act as an interface between the grbl UNO board
* and your laser driver analog input.
* 0 = laser off
* -4095 = laser maximum
* 
* stated another way
* when Z-Axiz = 0 there is 0 volts sent to the laser driver
* when Z-Axis = -1 there is 5 volts sent to the laser driver
* 
* Z step/mm set to 4095
* Z Feedrate should be set to 439.5604 mm/min
* Z Max Depth set to -1 mm
* 
*/

#include <Wire.h>
#include <Adafruit_MCP4725.h>

Adafruit_MCP4725 dac;

#define STEP 2 // digital pin 2 = interrupt 0
#define DIR 3 // digital pin 3 not used as an interrupt in this project

int pulseCounter = 0;

void setup() 
{
Serial.begin(115200);
Serial.println("grbl Interface");

attachInterrupt(STEP - 2, IRQhandler, RISING);
pinMode(DIR,INPUT_PULLUP);

dac.begin(0x60);
}

void loop() 
{ 
if (pulseCounter > 0)
{
pulseCounter = 0;
}
if (pulseCounter < -4095)
{
pulseCounter = -4095;
}

dac.setVoltage(map(pulseCounter, 0, -4095, 0, 4095), false);
}

void IRQhandler()
{
if (! digitalRead(DIR))
{
pulseCounter++;
}
if (digitalRead(DIR))
{
pulseCounter--;

       Serial.print("pulseCounter: ");
      Serial.println(pulseCounter);





}

Dodanie tych dwóch ostatnich linijek pozwoliło mi na monitorowanie zmiennej pulseCounter.   Ta zmienna  przy  +DIR  rośnie a przy sygnale -DIR resetuje się na podglądzie malejący licznik nie pokazuje wartości i przy zmianie na +DIR    licznik zaczyna zliczać impulsy taktujące STP od nowa . Brakuje zliczania umniejszania wartości licznika...
Zarchiwizowałem  wartości  zmiennej z monitora portu szeregowego w pliku txt. załącznik rar

 

PulseCounter.rar

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...