Forum: Mikrocontroller und Digitale Elektronik Library für Maturaprojekt


von alexandra (Gast)


Angehängte Dateien:

Lesenswert?

Hallo ich habe ein großes Problem!
Ich muss eine Library für mein Maturaprojekt erstellen.
Nachdem ich mich in der Arduino Umgebung nur wenig auskenne bin ich mit 
dieser Fehlermeldung komplett überfordert. Kann mir jemand helfen ?









M:\LightTomograph\lightTomographLibrary\lightTomographLibrary.ino: In 
member function 'void LightTomograph::init(float)':

M:\LightTomograph\lightTomographLibrary\lightTomographLibrary.ino:45:36: 
warning: ISO C++ forbids comparison between pointer and integer 
[-fpermissive]

   } else if (Serial.available() == "true"){

                                    ^

c:\temp\ccQNgKTZ.ltrans0.ltrans.o: In function `main':

C:\Program Files 
(x86)\Arduino\hardware\arduino\avr\cores\arduino/main.cpp:43: undefined 
reference to `setup'

C:\Program Files 
(x86)\Arduino\hardware\arduino\avr\cores\arduino/main.cpp:46: undefined 
reference to `loop'

collect2.exe: error: ld returned 1 exit status

exit status 1
Fehler beim Kompilieren für das Board Arduino/Genuino Uno.








Hier noch das selbst geschriebene Programm(bitte keine blöden Kommentare 
wenn der Fehler eindeutig ist, wie gesagt ich kenn mich nicht gut aus):
 #include <Stepper.h>
  #include "WConstants.h"
#endif
class LightTomograph{
#endif
public:
    LightTomograph();

              int AngleByStep(double MotorAngle, int Translation);
              int Steps(int MustHaveAngle, int AngleByStep);
              int PicByStep(int Steps, int HowManyPICs);
              boolean PicReady(int HowManyPics, boolean Funktion);
              void SetMotorLinksoderRechts(int pinPWM_A,int pinPWM_B,int 
pinDir_A ,int pinDir_B ,int schritte_def,boolean PicReady());
              void init(float initial);

};


void LightTomograph::init(float initial)
{

  int HowManyPICs;
  double MotorAngle;
  int MustHaveAngle;
  int Translation;
  boolean Funktion;

  if (Serial.available() == 1){
    HowManyPICs = Serial.read();
  }else if (Serial.available() == 2){
    MotorAngle = Serial.read();
  }else if (Serial.available() == 3){
     MustHaveAngle = Serial.read();
  }else if (Serial.available() == 4){
     Translation = Serial.read();
  } else if (Serial.available() == "true"){
     Funktion = Serial.readString();
  }
 int AngleByStepValue = AngleByStep(MotorAngle, Translation);
 int StepsValue= Steps( MustHaveAngle, AngleByStepValue);
 int PicByStepValue = PicByStep(StepsValue,HowManyPICs);
 boolean PicReadyValue =  PicReady( HowManyPICs, Funktion);


}
int LightTomograph:: AngleByStep( double motorAngle, int translation){
    int anglebyStep;
     anglebyStep = motorAngle/translation;
  return anglebyStep;
}
int LightTomograph:: Steps(int mustHaveAngle,int angleByStep){
    int Step;
    Step = mustHaveAngle/ angleByStep;
    return Step;
  }
int LightTomograph:: PicByStep(int Steps, int HowManySteps){
  int picByStep = Steps/HowManySteps;
  return picByStep;
}
boolean LightTomograph:: PicReady(int howManyPics, boolean funktion){
  boolean Ready;
  int pic = 0;
  if (funktion == true && pic <= howManyPics ){
    pic ++;
    return Ready = true;
  }else{
     return Ready = false;
  }
}
void LightTomograph::SetMotorLinksoderRechts(int pinPWM_A,int 
pinPWM_B,int pinDir_A ,int pinDir_B ,int schritte_def,boolean 
PicReady()){
  boolean Ready=PicReady();
#include <Stepper.h>
Stepper motor(schritte_def, pinDir_A, pinDir_B);
void setup();

 motor.setSpeed(40);
 digitalWrite(pinPWM_A,HIGH);
 digitalWrite(pinPWM_B,HIGH);
 Serial.begin(9600);

void loop();

   if (Ready == true){
  while (Serial.available() >0 ) {
    String abfrage = Serial.readString() ;
    if(abfrage == "links"){
      motor.step(1);
    }
    else if(abfrage == "rechts"){
      motor.step(-1);
          }
        }
   }

}

von Matthias Schilder (Gast)


Lesenswert?

Die Definitionen für die Funktionen setup und loop fehlen, nebst 
eventuellen weiteren Fehlern. Eigentlich ist die Fehlermeldung da 
ziemlich präzise und spezifisch. Wie hast du es denn hinbekommen, den 
Code zu schreiben? Oder ist das Copy/Paste?

von Matthias Schilder (Gast)


Lesenswert?

Und was für ein Kuddelmuddel soll das im der Methode 
SetMotorLinksoderRechts sein?

#include in der Definition? void loop();? Ohje.

von Ryan O. (Firma: HFu) (gorfindel)


Lesenswert?

Aus der Funktion kommt ein integer zurück, vermutlich eine 1 oder eine 0 
für true oder false, auf was du Prüfst ist ein Charakter Array, Probier 
die Zeile mal so aus:
 else if (Serial.available() == true)
oder
 else if (Serial.available() == 1)

von Conny G. (conny_g)


Lesenswert?

If anything else fails, read the instructions.

https://www.arduino.cc/en/Serial/Available

Das mit dem true macht gar keinen Sinn, schon gar nach den paar Zeilen 
davor.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Da liegt leider noch deutlich mehr im Argen.

Schritt 1: Frag dich bei jeder der folgenden Programmzeilen, was du
damit genau bezwecken möchtest:

1
  if (Serial.available() == 1){
2
    HowManyPICs = Serial.read();
3
  }else if (Serial.available() == 2){
4
    MotorAngle = Serial.read();
5
  }else if (Serial.available() == 3){
6
     MustHaveAngle = Serial.read();
7
  }else if (Serial.available() == 4){
8
     Translation = Serial.read();
9
  } else if (Serial.available() == "true"){
10
     Funktion = Serial.readString();
11
  }

Schritt 2: Lies dir die Dokumentation von Serial.available und
Serial.read durch und vergleiche das Gelesene mit dem Ergebnis von
Schritt 1.

Tipp: Es gibt auch die Funktionen Serial.parseInt und Serial.parseFloat,
die du gewinnbringend in deinem Code anwenden kannst.

von alexandra (Gast)


Lesenswert?

nein ich hab den Code selber geschrieben das Problem ist wenn ich die 
loob und die setup hineinschreibe kommt eine neue Fehlermeldung das ich 
das nicht hineinschreiben darf...

von alexandra (Gast)


Lesenswert?

das steht deswegen drin weil er gesagt hat er weiß nicht was Motor, 
stepper ist und dann hab ich versucht das include unten 
hineinzuschreiben und dann hat er es erkannt

von alexandra (Gast)


Lesenswert?

Das Problem ist das, dass ich von Matlab diese Variablen über die 
Serielle Schnittstellen also zum Seriellen Monitor übertragen will.
Und diese will ich dann als Variablen definieren. Deswegen hab ich das 
so gemacht. Ich hab auch keine Ahnung gehabt ob das funktioniert aber 
ich wüsste auch nicht wie ich es anders schreiben soll, wie gesagt ich 
hab mit Arduino noch nicht viel gemacht.

von m.n. (Gast)


Lesenswert?

Yalu X. schrieb:
> Schritt 1: Frag dich bei jeder der folgenden Programmzeilen, was du
> damit genau bezwecken möchtest:

... und schreibe es als Kommentar dazu.

von alexandra (Gast)


Lesenswert?

Matthias Schilder, was meinst du mit definieren ? wie soll ich die Loop, 
Setup definieren?

von alexandra (Gast)


Lesenswert?

if (Serial.available() == 1){
    HowManyPICs = Serial.read();
    //Erste Zeile vom Seriellen monitor auslesen und den Betrag als 
HowManyPics Variable speichern, als Beispiel steht im Seriellen Monitor 
als erstes 5 drin, dann soll 5 in die Variable gespeichert werden!
  }else if (Serial.available() == 2){
    MotorAngle = Serial.read();
    //zweite Zeile auslesen und Betrag in der Variable speichern
  }else if (Serial.available() == 3){
     MustHaveAngle = Serial.read();
     //dritte Zeite auslesen und in der Varable speichern
  }else if (Serial.available() == 4){
    //vierte Zeile auslesen und in Varable speichern
     Translation = Serial.read();
  } else if (Serial.available() == 5){
     Funktion = Serial.readString();
     // fünfte und letzte Variable speichern. Wenn i dieser Variable 
true steht kann sich der Motor um eines weiter bewegen.

Ich weiß ja nicht ob ich so den jeweiligen wert in der Zeile bekomme?

von Conny G. (conny_g)


Lesenswert?

Nein, Doku lesen.
available gibt die Anzahl Bytes im Puffer zurück.
Normalerweise liesst man eine ganze Zeile ein und parsed/zerlegt sie 
dann in ihre Einzelteile.
So ist das sehr fehleranfällig und nicht ratsam.
Wenn die serielle Übertragung aus dem Tritt kommt (Wahrscheinlichkeit 
sehr hoch), dann funktioniert nichts mehr.
Deshalb "synchronisiert" man auf CRLF und parsed die Zeile als ganzes.

Hier mal der nächstbeste Thread zum Thema seriell Zeilen parsen:

https://forum.arduino.cc/index.php?topic=100429.0

Gefunden mit:
https://www.google.de/search?q=arduino+reading+parsing+serial+line+by+line&oq=arduino+reading+parsing+serial+line+by+line&aqs=chrome..69i57.6706j0j7&sourceid=chrome&ie=UTF-8

Hier gibt's sogar ein Video zum Thema:
https://www.youtube.com/watch?v=X5u2qCzcPn8

von Conny G. (conny_g)


Lesenswert?

Wenn Du nicht mal "setup" und "loop" kennst, Grundkonzepte von 
Arduino-Programmierung....
Mir scheint, Du versuchst da was zu programmieren und hast keine Ahnung 
von Programmieren und Dich auch nicht ein bisschen mit der Arduino Doku 
beschäftigt.
Du wirst von einem Fehler in den nächsten laufen, wenn Du Dich nicht ein 
bisschen mit beidem beschäftigst BEVOR Du jemandem im Projekt eine 
Library ablieferst.
Für Arduino gibt es sicher 10.000 Tutorials im Web.

von alexandra (Gast)


Lesenswert?

Ich hab gesagt die blöden Kommentare kann man sich sparen OK! Wenn man 
keine Hilfe geben möchte ist mir das egal ich muss das machen, Lust hab 
ich ja selber keine also entweder Helfen oder Klappe halten. Wie soll 
man bitte sich alles selbst beibringen! Manchmal versucht man halt etwas 
und schaut ob es funktioniert...tut mir echt leid das ich um Hilfe bitte 
!!

von Johannes S. (Gast)


Lesenswert?

und unter File/Examples/Communication werden sogar passende Beispiele 
mitinstalliert die man nur modifizieren braucht. Z.B. ReadASCIIString.

von alexandra (Gast)


Lesenswert?

Und noch etwas, ich weiß was Loop und Setup ist aber das ist doch 
komplett was anderes wenn man das in einer Library schreibt!! Und genau 
weil es 10.00 Tutorials gibt ist es so schwer etwas zu finden was einem 
helfen kann. Und noch mal ich hab mir das nicht freiwillig ausgesucht!

von Conny G. (conny_g)


Lesenswert?

alexandra schrieb:
> Ich hab gesagt die blöden Kommentare kann man sich sparen OK! Wenn man
> keine Hilfe geben möchte ist mir das egal ich muss das machen, Lust hab
> ich ja selber keine also entweder Helfen oder Klappe halten. Wie soll
> man bitte sich alles selbst beibringen! Manchmal versucht man halt etwas
> und schaut ob es funktioniert...tut mir echt leid das ich um Hilfe bitte
> !!

Blöde Kommentare gibt es dann, wenn man sich selber nicht anstrengt. 
Wenn Du vorher nichtmal ein Arduino Tutorial durcharbeitest und dann 
hier fragst, dann lässt Du Dir alles vorkauen.
Bisschen was musst schon selber machen, sonst bist eigentlich im Studium 
falsch. Wahrscheinlich auch im Berufsleben. Kommt da nämlich häufiger 
vor, dass man etwas tun muss, was man sich nicht ausgesucht hat.

von Stefan K. (stefan64)


Lesenswert?

alexandra schrieb:
> Ich hab gesagt die blöden Kommentare kann man sich sparen OK!

Ich sehe hier keinen einzigen blöden Kommentar?! Im Gegenteil, alle 
Kommentare waren bisher ausgesprochen hilfreich. Inklusive derer, 
erstmal die Grundlagen zu lernen.

alexandra schrieb:
> Lust hab ich ja selber keine

Das merkt man allerdings. Kann es sein, dass das Dein eigendliches 
Problem ist?

alexandra schrieb:
> Wie soll man bitte sich alles selbst beibringen!

Interesse haben! Interesse haben! Interesse haben!

von S. R. (svenska)


Lesenswert?

alexandra schrieb:
> also entweder Helfen oder Klappe halten

Was zahlst du für die Forennutzung? Nichts? Ach so, na dann...

von Clemens W. (daxmus)


Lesenswert?

Wenn dir die Tutorials im Inernet zu viel sind (was ich sogar verstehen 
kann), dann würde ich vorschlagen, ein gutes Buch zu kaufen und dies 
durchzuarbeiten.
Das kann mal 30-40€ kosten, hat aber den Vorteil, dass es i.d.R. 
strukturierter und von einem (oder wenigen) Autor(en) ist. Durch 
letzteres ist schon mal der Schreib- und Programmierstil einheitlich und 
schafft keine zusätzlichen Verwirrungen.

Nur so als Tipp und hat mir persönlich schon öfters geholfen - aber 
jeder lernt halt anders.

von alexandra (Gast)


Lesenswert?

C:\Program Files 
(x86)\Arduino\hardware\arduino\avr\cores\arduino/main.cpp:43: undefined 
reference to `setup'

C:\Program Files 
(x86)\Arduino\hardware\arduino\avr\cores\arduino/main.cpp:46: undefined 
reference to `loop'


Diese Fehlermeldung kommt bei jeden Programm egal ob selbst geschrieben 
oder von einem Tutorial. Und nochmal bei einer Library baucht man 
keine!! Kann mir jetzt wer sagen warum sie kommt?

von Dussel (Gast)


Lesenswert?

Unter der Annahme, dass alexandra der/die alexandra aus dem ersten 
Beitrag ist:
alexandra schrieb:
> Lust hab
> ich ja selber keine
Das merkt man. Was du hier für einen Dreck hinrotzt.

alexandra schrieb:
> Ich hab gesagt die blöden Kommentare kann man sich sparen OK! Wenn
> man
> keine Hilfe geben möchte ist mir das egal ich muss das machen, Lust hab
> ich ja selber keine also entweder Helfen oder Klappe halten. Wie soll
> man bitte sich alles selbst beibringen! Manchmal versucht man halt etwas
> und schaut ob es funktioniert...tut mir echt leid das ich um Hilfe bitte
> !!
Du bist schon zu faul, hier mal ordentliche Beiträge zu schreiben, 
wirfst hier irgendeinen Müll hin, motzt die Forenteilnehmer an und 
erwartest dann noch, dass die Leute genau tun, was du verlangst.
Von der geistigen Reife her würde ich dein Alter auf maximal 15 
schätzen.  Da denkt man noch, dass so ein Verhalten angemessen wäre. 
Gewöhn dich lieber früher daran, dass es das nicht ist.

von Stefan K. (stefan64)


Lesenswert?

Weil Du setup() und loop() nicht implementierst, das würde so aussehen:
1
loop() 
2
{
3
  ...
4
}
sondern nur deklarierst mit:
1
loop();

Ich nehme mal an, dass Du das hier meinst:
1
void setup()
2
{
3
  motor.setSpeed(40);
4
  digitalWrite(pinPWM_A, HIGH);
5
  digitalWrite(pinPWM_B, HIGH);
6
  Serial.begin(9600);
7
}
8
9
void loop()
10
{
11
  if (Ready == true)
12
  {
13
    while (Serial.available() > 0) 
14
    {
15
    String abfrage = Serial.readString();
16
    if (abfrage == "links")
17
    {
18
      motor.step(1);
19
    }
20
    else 
21
    {
22
      if (abfrage == "rechts")
23
      {
24
        motor.step(-1);
25
      }  
26
    } 
27
  }  
28
}

von Johannes S. (Gast)


Lesenswert?

alexandra schrieb:
> Und nochmal bei einer Library baucht man
> keine!! Kann mir jetzt wer sagen warum sie kommt?

Weil die Funktionen einfach in dem Programm fehlen.

Bei Arduino heisst das zwar Library, es sind aber nur einfach weitere 
Dateien die Code enthalten. Und die kann man nicht einzeln übersetzen, 
der Linker möchte ein main, setup und loop sehen. Zu der 'Library' muss 
also noch ein Testprogramm mit setup() und loop() dazu.

https://www.arduino.cc/en/Hacking/LibraryTutorial

von Peter D. (peda)


Lesenswert?

Ich verstehe nicht, wie man ein Projekt mit Programmierung annehmen 
kann, wenn man so gut wie keine Programmierkenntnisse und auch keine 
Lust hat.
Programmieren lernt man nicht in 2 Tagen.
Kommunikation über Zeichenketten erfordert zu allererst mal ein 
Protokoll.

von Patrick B. (p51d)


Lesenswert?

Meine Güte, dein Code...

Mhm, das wird jetzt was dauern:
1) Grundstruktur passt irgendwie nicht. Das würde nämlich so aussehen 
(Stichworte Include-Guard, Präprozessor...):
1
#ifndef LightTomograph_h // INCLUDE GUARD BEGIN
2
#define LightTomograph_h
3
4
5
#if ARDUINO >= 100
6
  #include "Arduino.h"
7
#else
8
  #include "WProgram.h"
9
  #include "pins_arduino.h"
10
  #include <Stepper.h>
11
  #include "WConstants.h"
12
#endif
13
class LightTomograph{ // Klassendefinition
14
  public:
15
  LightTomograph(); // Konstruktur
16
        ~LightTomograph(); // Destruktor
17
};
18
19
#endif // INCLUDE GUARD ENDE

2) Dann kommen all deine Funktions-Deklaration hinzu:
1
class LightTomograph{
2
  public:
3
    LightTomograph();
4
        ~LightTomograph();
5
  
6
  // Von "aussen" zugänglich
7
  public:
8
    int AngleByStep(double MotorAngle, int Translation);
9
    int Steps(int MustHaveAngle, int AngleByStep);
10
    int PicByStep(int Steps, int HowManyPICs);
11
    boolean PicReady(int HowManyPics, boolean Funktion);
12
    void SetMotorLinksoderRechts(int pinPWM_A,int pinPWM_B,int pinDir_A ,int pinDir_B ,int schritte_def,boolean PicReady());
13
    void init(float initial);
14
  
15
  // Funktionen nur innerhalb der Klasse aufrufbar
16
  private:
17
  
18
  protected:
19
  
20
};

3) Jede deiner Funktionen muss jetzt noch definiert werden:
1
int LightTomograph::AngleByStep( double motorAngle, int translation)
2
{
3
  int anglebyStep = 0;
4
  return anglebyStep; 
5
}
6
7
int LightTomograph::Steps(int mustHaveAngle,int angleByStep)
8
{
9
    int Step;
10
  return Step;
11
}
12
...
Die Includes innerhalb einer Funktion sind nicht sonderlich elegant.

4) Loop und Setup
Hast du aus einem Beispiel kopiert ohne es verstanden zu haben!
Du deklarierst innerhalb der Funktion SetMotorLinksoderRechts loop und 
Setup, was ansich schon nicht geht. Und weiter fehlt die 
Implementierung.

Das ganze könnte am Schluss etwa so aussehen (habe noch nie Arduino 
gehabt, also verzeih die Fehler):
1
#ifndef LightTomograph_h
2
#define LightTomograph_h
3
4
5
#if ARDUINO >= 100
6
  #include "Arduino.h"
7
#else
8
  #include "WProgram.h"
9
  #include "pins_arduino.h"
10
  #include <Stepper.h>
11
  #include "WConstants.h"
12
#endif
13
14
15
16
class LightTomograph{
17
  public:
18
    LightTomograph();
19
        ~LightTomograph();
20
  
21
  // Von "aussen" zugänglich
22
  public:
23
    int AngleByStep(double MotorAngle, int Translation);
24
    int Steps(int MustHaveAngle, int AngleByStep);
25
    int PicByStep(int Steps, int HowManyPICs);
26
    boolean PicReady(int HowManyPics, boolean Funktion);
27
    void SetMotorLinksoderRechts(boolean Left, unsigned int NumberOfSteps);
28
    void ChangeStepperSpeed(int RPMs);
29
    void PeriodicTask();
30
  
31
  // Funktionen und Member nur innerhalb der Klasse aufrufbar
32
  private:
33
    Stepper myStepper;
34
    Serial mySerial;
35
  protected:
36
  
37
};
38
39
40
#endif 
41
42
void LightTomograph::LightTomograph()
43
{
44
  // Stepper Member initialisieren
45
  int Steps = 100;
46
  int Pin1 = 1;
47
  int Pin2 = 2;
48
  int Pin3 = 3;
49
  int Pin4 = 4;
50
  int RPMs = 10;
51
  myStepper = new Stepper(Steps, Pin1, Pin2, Pin3, Pin4);
52
  myStepper.setSpeed(RPMs);
53
  
54
  // Initialisiert Serial0 mit 9600 Baud
55
  mySerial.begin(9600);
56
}
57
58
int LightTomograph::AngleByStep( double motorAngle, int translation)
59
{
60
  int anglebyStep = 0;
61
  return anglebyStep; 
62
}
63
64
int LightTomograph::Steps(int mustHaveAngle,int angleByStep)
65
{
66
    int Step;
67
  return Step;
68
}
69
70
int LightTomograph::PicByStep(int Steps, int HowManySteps)
71
{
72
  int picByStep = Steps/HowManySteps;    // ACHTUNG: KEINE KOMMASTELLEN
73
  return picByStep;
74
}
75
76
boolean LightTomograph::PicReady(int howManyPics, boolean funktion)
77
{
78
  boolean Ready = false;
79
  return Ready;
80
}
81
82
void LightTomograph::SetMotorLinksoderRechts(boolean Left, unsigned int NumberOfSteps)
83
{
84
  if(Left == true)
85
  {
86
    myStepper.step(NumberOfSteps);
87
  }
88
  else
89
  {
90
    myStepper.step((-1) * NumberOfSteps);
91
  }
92
}
93
94
void LightTomograph::ChangeStepperSpeed(int RPMs)
95
{
96
  myStepper.setSpeed(RPMs);
97
}
98
99
void LightTomograph::PeriodicTask()
100
{
101
  int Index = 0;
102
  char Daten[100];  // Limitiert auf 100 Zeichen
103
  
104
  // Sollange irgendwelche Daten im Puffer
105
  while(mySerial.availlable() > 0)
106
  {
107
    // Bytes jeweils im Array ablegen
108
    if(Index < 100)
109
    {
110
      Daten[Index] = mySerial.read();
111
      Index ++;      
112
    }
113
  }
114
  
115
  // Empfangene Daten verarbeiten (gemäss Protokoll) BEISPIEL
116
  // Daten[0] beinhaltet das Kommando (links, rechts...)
117
  // Daten[1] beinhaltet Anzahl Schritte
118
  switch(Daten[0])
119
  {
120
    case 0:
121
      // Kommando 1 = 0
122
      SetMotorLinksoderRechts(true, Daten[1]);
123
      break;
124
      
125
    case 1:
126
      // Kommando 2 = 1
127
      SetMotorLinksoderRechts(false, Daten[1]);
128
      break;
129
    
130
    case 2:
131
      break;
132
      
133
    default:
134
      // Im Fehlerfall
135
      break;
136
  }
137
}
Da fehlt jetzt jegliche Logik, da ich dein Problem oder deine 
Aufgabenstellung nicht komplett kenne.

BTW:
Wenn ich dich wäre, und mich so eine Aufgabe weder interessiert noch ich 
mich dafür im Minimum begeistern kann, dann würde ich mit dem Dozenten 
über eine neue Aufgabe sprechen!
Oder halt den Finger aus dem A... nehmen und halt etwas machen, da nicht 
alles einfach vom Himmel fällt und immer jedem passt.

von Conny G. (conny_g)


Lesenswert?

Patrick B. schrieb:
> Das ganze könnte am Schluss etwa so aussehen (habe noch nie Arduino
> gehabt, also verzeih die Fehler):

Nicht vergessen, dass der obere Teil die .h Datei ist und der untere die 
.cpp.

von Richard B. (r71)


Lesenswert?

Peter D. schrieb:
> Ich verstehe nicht, wie man ein Projekt mit Programmierung annehmen
> kann, wenn man so gut wie keine Programmierkenntnisse und auch keine
> Lust hat.

Weil das heute so üblich ist. Leider.
Der Billigst-Anbieter bekommt den Job.

von alexandra (Gast)


Lesenswert?

Erstens möchte ich mich bedanken bei denjenigen die einfach kommentarlos 
Antworten geben können, ich mein nur mal als Frage:
Warum Fragen Menschen?... Damit Sie schlecht gemacht werden? Oder gesagt 
bekommen was für ein faules A.loch sie sind
ist ja mal sehr nett..  das mit den billigsten Anbieter ergibt wieder 
mal richtig sinn in meinen fall weil.. das Projekt von unserer Schule 
aus ist! Bzw mit diesem Code ist weder meine Aufgabe beendet noch hab 
ich jetzt alles, in den, wie ihr so nett gesagt habt Arsch geschoben 
bekommen. Ich wolle nur mal ca. wissen, wie ich das mit einem Code 
machen soll, weil es ja so wie ich es gemacht hab nicht gegangen ist. 
Und warum nicht weil ich unter anderen keine cpp. bzw h dabei hatte und 
der gleichen..allein diese Information hätte mir eine Menge geholfen, 
natürlich ist mir klar das man das nicht gleich sieht, weil in den 
Internetseiten immer nur gestanden ist, dass man eine machen soll aber 
nicht was und wie genau. Bzw hab ich das nie herauslesen können. Aber 
das ist jetzt auch nicht das auf was ich hinaus möchte. Ich habe weder 
von euch verlangt das ihr mir alles vorschreiben solltet noch sowas in 
der Richtung.
Das mit der Reife werde ich jetzt  mal klarstellen. Wer jemanden egal 
was für eine Fragestellung der jenige hat, egal wie dumm diese Frege 
auch sein mag kritisiert oder fertigmacht, Behauptungen von wegen Faul, 
Dumm oder so etwas der gleichen macht. Wer ist dann Geistig nicht ganz 
ausgereift? Ich sprech jetzt nicht die an die mir Helfen wollten.
Noch etwas ich glaube im Vergleich zu meinen anderen Klassenkameraden 
die jetzt ihre Ferien schön faul am Strand liegen und sich einen 
feuchten Dreck um ihre Arbeiten kümmern, bin Ich die 40h die Woche 
arbeitet in ihren Ferien und kein Geld in den Arsch geschoben bekommt, 
weder Faul noch Unreif! Ja dann war der Code halt misst ok, es hat doch 
jeder mal angefangen oder ? Das ist kein Grund gleich durchzudrehen noch 
dazu ohne die Vorgeschichte zu kennen. Ich habe in diesen Projekt viele 
Aufgaben für die, die es Wissen wollen. Ich bin keine Programmiererin, 
ich bin für die Hardware zuständig ok nur leider beinhaltet die auch ein 
paar Software Codes unter anderem auch Arduino. Also spart euch das mit 
der geistigen Reife! Was ich meine mit.. Ich hab auch keine Lust.. Wer 
hat schon Lust jeden Tag um 5Uhr aufstehen und 10 Stunden am Computer 
sitzen wenn man eigentlich Ferien hätte?.. und sich dann für irgendwas 
rechtfertigen muss? Noch dazu haben wir noch genügend Zeit ich bin halt 
ungeduldig, noch dazu hab ich mich stundenlang damit beschäftigt bevor 
ich auch nur ansatzweiße daran gedacht habe jemand mein Problem zu 
zeigen.. Ja macht ruhig weiter was ich in meinen Leben alles falsch 
gemacht hab.. als Schüler  ..ich sollte mich für meine Dummheit und 
Faulheit erschießen oder, ... naaa klar.. lächerlich kann ich da nur 
noch sagen..
Ich hoffe es fühlen sich die Richtigen angesprochen.
Für meinen Teil ist die Sache jetzt abgeschlossen weil ich hab zu 
arbeiten...und zwar eine Menge.. da hab ich keine Zeit für diesen 
Kindergaten! Die Kommentare könnt euch sparen, die lies ich sowieso 
nicht mehr.

von Peter D. (peda)


Lesenswert?

Hallo Alexandra,
Du solltest versuchen, Antworten, die nicht helfen oder unhöflich sind, 
einfach zu ignorieren. Wie Du ja gemerkt hast, verschlimmern jegliche 
Reaktionen die Sache nur. So ist das Internet eben.
In den Social Media geht es doch noch schlimmer zu (Shitstorm). Da hätte 
ich gedacht, daß die heutige Jugend entsprechend abgehärtet ist. Ich 
habe keine Social Media Accounts, das wäre mir zu brutal.

Ich würde mich an Deiner Stelle nicht so stur auf das Problem 
fokussieren, sondern erstmal versuchen, mit den Grundlagen klar zu 
kommen.
In der Arduino-Installation gibt es bestimmt ne Menge Beispiele und auch 
in den Arduino-Tutorials.
Habe bitte Verständnis dafür, daß hier viele gerne knifflige Probleme 
lösen, aber eher nicht der Pädagoge sind, der die Grundlagen erklären 
kann.
Bei sowas wie:
1
if (Serial.available() == "true")
 sind sie einfach ratlos, wo nur anfangen.

von Richard B. (r71)


Lesenswert?

alexandra schrieb:
> Die Kommentare könnt euch sparen,
> die lies ich sowieso nicht mehr.

Wozu hast du das hier geschrieben?

alexandra schrieb:
> das mit den billigsten Anbieter ergibt wieder
> mal richtig sinn in meinen fall weil..

Das hoffe ich mal. Aufgaben, die du nicht erledigen kannst
musst du ablehnen können. Warum hast du zugesagt?
Brauchst du dringend eine gute Note (das wars mitn Geld)?

Die Leute haben so geantwortet weil da sehr viel fehlt->

Peter D. schrieb:
> sondern erstmal versuchen,
> mit den Grundlagen klar zu kommen.

Hättest du dich angemeldet und etwas mehr offengelegt,
hätte dir sicher jemand geholfen...
Es ist immerhin kein "LED Blink" Problem.

von Dussel (Gast)


Lesenswert?

Peter D. schrieb:
> Du solltest versuchen, Antworten, die nicht helfen oder unhöflich sind,
> einfach zu ignorieren.
Das würde ich nicht sagen. Sie sollte lieber daraus lernen. Bis
alexandra schrieb:
> Ich hab gesagt die blöden Kommentare kann man sich sparen OK! Wenn
> man
> keine Hilfe geben möchte ist mir das egal ich muss das machen, Lust hab
> ich ja selber keine also entweder Helfen oder Klappe halten. Wie soll
> man bitte sich alles selbst beibringen! Manchmal versucht man halt etwas
> und schaut ob es funktioniert...tut mir echt leid das ich um Hilfe bitte
> !!
war von den Antworten alles in Ordnung. Spätestens da hat sie mit dem 
schlechten Benehmen angefangen. (Von den lustlos hingeworfenen 'Macht 
mal'-Beiträgen abgesehen).

von S. R. (svenska)


Lesenswert?

alexandra schrieb:
> Warum Fragen Menschen?

Aus zwei Gründen:
- Weil sie etwas wissen möchten.
- Weil sie etwas erledigt haben möchten.

Du warst eindeutig auf letzteres aus, dazu noch unhöflich. Warum sollten 
wir deine Probleme unentgeltlich lösen wollen, wenn du vermutlich noch 
nichtmal einen Dank übrig hast?

alexandra schrieb:
> bin Ich [...] weder Faul noch Unreif!

Deine Anfrage ließ auf Faulheit schließen (du wolltest eine Lösung, 
keine Hilfe) und deine Reaktion war alles andere als reif (nachdem du 
keine Lösung bekommen hast, fingst du an rumzupöbeln).

Es ist scheißegal, was für ein Mensch du im realen Leben bist, wie deine 
Situation ist. Das steht in deinen Posts nicht drin, es spielt keine 
Rolle, das kann und will keiner wissen.

Das einzige, was wir gesehen haben, ist ein "lös mir mein Problem und 
halt ansonsten die Schnauze" - und das ist im Allgemeinen weder ein 
Zeichen von Fleiß, noch von Reife.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.