Tanken är att jag laddar ett CNC program i maskinen som är ett gäng borrcyckler med väntetid i botten och MCU:n ska då känna av att mätvärdena via en sjutpot som är ansluten till A/D omvandlaren har stannat till och registrera det, för att invänta nästa stabila värdet och så ska det fortsätta tills hela CNC-programmet är genomkört.
A/D delen av programmet är inte klart, men ändå har en logiskbug smygit sig in, är det någon som ser vad jag gjort för fel?
De rader i röda block är de som inte ska dyka upp.
Kod: Markera allt
#include <SoftwareSerial.h>
String Text ="";
int utdata = 0;
int deep = 0;
int Data = 0;
int st = 0;
int incomingByte = 0; // for incoming serial data
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
// put your setup code here, to run once:
// Open serial communications and wait for port to open:
Serial.begin(57600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
if (st == 0) {
Serial.println("");
Serial.println("Enter numberss of sampel: ");
Serial.println(" n or N = new sampel range ");
st=1;
}
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
// say what you got:
//Serial.println("Okey, got it.");
//Serial.print("I received: ");
Data=(incomingByte-48);
if (incomingByte==110){st=99;}
if (incomingByte==78) {st=99;}
if (st==99){
Text ="";
utdata = 0;
deep = -1;
Data = 0;
st = 0;
incomingByte = 0; // for incoming serial data
}
if (Data>=0){
if (incomingByte>=48 && incomingByte<=57){
//Serial.println("Siffror");}
//Serial.println(incomingByte);
//Serial.println("<---incomingByte");
//Serial.println(Data);
//Serial.println("<---Data");
Text = Text+String(Data);
//Serial.print(Text);
//Serial.println("<---Text");
utdata=Text.toInt();
//Serial.print(utdata);
//Serial.println("<---utdata");
}
}
if (Serial.available() == 0) {
st=2;
Serial.println("----------------------------------------------------");
Serial.println("Okey, got it.");
}
}
if (st == 2){
// put your main code here, to run repeatedly:
if (deep<0){st=0;}
if (deep>0){
Serial.print(",");
}
Serial.print(deep);
deep=deep+1;
if (deep>utdata) {
Serial.println(" ");
deep=0;
}
}
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(25); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(10); // wait for a second
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(25); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(100); // wait for a second
}