Hallo Gemeinde,
ich erbitte heut nochmal Eure Hilfe bei einem Problem.
Ich habe an meinen 3D-Drucker (Eigenbau, Software: Marlin, Hardware: Arduino Mega 2560 und RAMPS1.4) einen Raspberry Pi über USB angeschlossen. Nun habe ich ein C++ Programm, dass später einige Aufgaben übernehmen soll. Daher muss ich die Programmierung, um sie später in das Programm implementieren zu können, in C++ hin bekommen.
Wenn ich in der Konsole (über Putty) folgenden Befehl eingebe, dann funktioniert die Kommunikation:
und anschließend:
dann funktioniert der Code -> M300 steht bei Marlin für den Piezopeeper, S300 für 300Hz und P1000 für eine Sekunde.
Es wird also für eine Sekunde ein Ton ausgegeben.
Nun habe ich zum Test ein C++ Programm geschrieben der die Tonhöhe immer um 300Hz erhöht:
#include<iostream>
#include <fstream>
int main()
{
std::ofstream out("/dev/ttyACM0");
{
out << "M300 S300 P1000" << std::endl;
usleep(10000);
out << "M300 S600 P1000" << std::endl;
usleep(10000);
out << "M300 S900 P1000" << std::endl;
usleep(10000);
out << "M300 S1200 P1000" << std::endl;
usleep(10000);
out << "M300 S1500 P1000" << std::endl;
usleep(10000);
out << "M300 S1800 P1000" << std::endl;
usleep(10000);
}
out.close();
return(0);
}
Alles anzeigen
Auch dieses Programm funktioniert. Also dachte ich mir - juhu - Problem gelöst.
Startet man nun den Raspberry neu, so ist die Verbindung wieder getrennt. Lässt man nun den screen-Befehl weg, dann gehen weder der echo-Befehl noch die C++ Datei. Mein Ziel ist aber ja nun mit dem C++ Programm alleine die Verbindung aufzubauen. Was muss ich in meinen C++-Code einfügen, um die Verbindung am Anfang aufzubauen und zu halten?
Vielen Dank für hilfreiche Ideen, Gruß Max