Hallo,
Das Board Melzi Creality 1.1.3 Sanguino mit dem Atmega 1284p stammt
eigentlich aus einem 3D Ender Drucker. Da das Board ausgetauscht wurde,
wird es für ein neues Projekt benutzt. Dieses Projekt ist eine PCB Fräse
mit der Open Source Firmware cyclone.
Die Fräse und das Display mit Menuauswahl funktioniert schon
einwandfrei, es fehlt nur noch der card reader, damit die Fräse ohne
einen weiteres Gerät(PC) funktioniert und die Befehle aus der SD Karte
ausliest und die Motoren steuert. Wenn ich das Board NUR am USB
verbinde, kann ich die benötigten Befehle aus einem txt file lesen und
abspeichern. Wenn ich aber das Netzteil mit 12 V mit dazustecke
funktioniert es nicht mehr. Genauso wenn NUR das Netzteil von 12V
angesteckt ist funktioniert es nicht.
Hier der Code den ich benutze um das File zu lesen:
1 | #include <SPI.h>
|
2 | #include <SD.h>
|
3 |
|
4 | File data;
|
5 | const int cs = 10;
|
6 |
|
7 |
|
8 | void read_txt(){
|
9 |
|
10 | data = SD.open("test.txt");
|
11 | if(data){
|
12 | Serial.println("test.txt");
|
13 | while(data.available()){
|
14 | Serial.write(data.read());
|
15 | }
|
16 | data.close();
|
17 | }
|
18 | else{
|
19 | Serial.println("file can not open");
|
20 | }
|
21 |
|
22 | }
|
23 |
|
24 | void setup()
|
25 | {
|
26 | Serial.begin(9600);
|
27 | while(!Serial){
|
28 | }
|
29 | if(!SD.begin(cs)){
|
30 | Serial.println("Initialization failed!");
|
31 | return;
|
32 | }
|
33 | Serial.println("Initialization succesfull.");
|
34 | read_txt();
|
35 | }
|
36 |
|
37 | void loop(){
|
38 |
|
39 | }
|
Meine Vermutung war das die serial Verbindung(PC) mit der SD Karte
kollidiert. Also hab ich den Code umgeschrieben und statt den Serial ein
paar LED getoggelt:
1 | #include <SPI.h>
|
2 | #include <SD.h>
|
3 |
|
4 | File data;
|
5 | const int cs = 10;
|
6 |
|
7 | int led_red = 20;
|
8 | int led_green = 19;
|
9 |
|
10 | void read_txt(){
|
11 |
|
12 | data = SD.open("test.txt");
|
13 | if(data){
|
14 | while(data.available()){
|
15 | }
|
16 | data.close();
|
17 | }
|
18 | else{
|
19 | }
|
20 |
|
21 | }
|
22 |
|
23 | void setup()
|
24 | {
|
25 | pinMode(led_red, OUTPUT);
|
26 | pinMode(led_green, OUTPUT);
|
27 |
|
28 | if(!SD.begin(cs)){
|
29 | digitalWrite(led_red, HIGH);
|
30 | return;
|
31 | }
|
32 | digitalWrite(led_green, HIGH);
|
33 | //read_txt();
|
34 | }
|
35 |
|
36 | void loop(){
|
37 | }
|
Leider ist es hier unverändert, sobald ich den Netzstecker von 12V
anschließe funktioniert es nicht mehr. Nur per USB funktioniert es.
Habt ihr noch Ideen?