Skocz do zawartości

Sterownik lasera z przełączaniem TTL/ANALOG


qulet

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

Link do komentarza
Share on other sites

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

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.