Newbie stellt sich vor.... und direkt ein paar Fragen.

Guten Morgen Zusammen.

Es war eigentlich eine Spontan Endscheidung; ich möchte die weite Welt des Arduinos kennen lernen...

Zu meiner Seits,
ich bin ü30 und bin der pumich...(richtiger Name ist unwichtig)

Habe viele Hobby´s die ich bestimmt mit den Arduino etwas "pimpen" kann.....
Minderwertige Grundlegende Kenntnisse in Elektronik sind vorhanden... (ich weis wie man einen Transistor verwendet und was dieser macht....)

Nun... ich habe mir so ein Arduino MEGA 2560 china nachbau gekauft (bitte nicht lünchen)
und bin damit bis jetzt sehr zufrieden, genau so wie begeistert.....wenn ich bedenke das ich wahrscheinlich höhsten 1% genutzt habe.....
Aber in 3 Tagen kann man ja noch nicht viel lernen.... kommt alles mit der Zeit...

In den paar Tagen habe ich mir bereits diverse Skatches (schreib man das so?)
zusammen gebacken, die auch so funktionierten wie ich wollte.....

Wie ich schnell bemerkt haben, nutzen die HTML Grund- Programmierkenntnisse recht wenig, aber wenigstens etwas von der SPS Programierung (was ich noch behalten konnte) ist recht ähnlich und macht die Logik etwas Verständlicher...... aber im Endeffekt ist das ein Anfang von 0....

Jetzt aber Butter bei der Fische....

ich Poste jetzt mal 2 Skatches.......

was würdet ihr anders machen?
geht das einfacher? (vorerst für ein Newbie verständlich)

LED rauf und runter Faden mit einem Taster

int LED = 2;
int IN = 12;

int Taster;
int LED_val = 0;

int merker = 0;

void stat()
{
  if (Taster == 1)
  {
    digitalWrite(9, HIGH);
  } else {
    digitalWrite(9, LOW);
  }
}

void setup() {
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
  pinMode(IN, INPUT);
  pinMode(9, OUTPUT);

}

void loop() {
  Serial.println(LED_val);
  Taster = digitalRead(IN);
  stat();
  //LED auf 255 Faden


  if ((Taster == 1) && (LED_val >= 0) && (merker == 0))
  {
    analogWrite(LED, LED_val);
    LED_val++;
    delay(5);

    if (LED_val == 255)
    {
      merker = 1;
    }
  }

  //wenn LED auf 255 dann runter faden

  if ((Taster == 1) & (LED_val <= 255) && (merker == 1))
  {
    analogWrite(LED, LED_val);
    LED_val--;
    delay(5);

    if (LED_val == 0)
    {
      merker = 0;
      digitalWrite(LED, LOW);
      delay(500);
    }
  }

}

Ich seh nur 1 Sketch.

Taster entprellen schadet nicht und vermutlich hast Du keinen Pulldown am Eingang. Also Logik umkehren, Taster gegen Gnd und internen Pullup aktivieren.

Ansonsten: wenn's funktioniert ist's fein. Viele Wege führen nach Rom.

Ansonsten 2: willkommen:-)

ich habe deine Variablen mal geändert

const int LED = 2;
const int IN = 12;
bool  Taster;
byte LED_val = 0;
bool merker = 0;

wenn ich deinen Sketch richtig verstehe, dürfte die Led eigentlich nicht faden, da du in der Loop ständig die Funktion stat() aufrufst und hier nur ein- und ausgeschaltet wird
Nachtrag:
hab ich erst jetzt gesehen, daß du zum Faden und für stat() unterschiedliche Led's hast
die Zeile
if ((Taster == 1) && (LED_val >= 0) && (merker == 0))
könntest du durch die
if ((Taster) && (LED_val >= 0) && (!merker ))
ersetzen

geht das einfacher?

Die Funktion stat() (?? Namen sollten selbsterklärend sein :wink: )
kannst du durch

     digitalWrite(9,Taster);

ersetzen.

Herzlich willkommen, pumich !

Ja, HTML Programmieren ist was anderes, auch python hilft nicht viel :wink:
Der Reiz liegt darin, Winzlings-Controller zu programmieren, wo es auf ein paar kB Speicher ankommt.
Klar ist ein 2560 MEGA für dein Beispiel Overkill. Aber attiny Programmieren ist für den Anfang etwas kniffliger.

Viel Spass weiterhin

Danke für die Grüße.

Mit den 2ten Skatch hab ich Probleme zu Posten, dieser ist länger als 9000 Zeichen... kann ich den irgendwie anders Posten?

An der Schaltung hab ich ein 10k Widerstand zum entprellen. Habe direkt bei den ersten versuchen gemerkt das es ohne nicht geht.

Ja, es sind 2 LED´s, hätte besser das ganze etwas ausführlicher beschrieben.

Die eine LED dient als zum veranschaulichen wenn der Taster gedrückt ist und leuchtet nur immer dann wenn der Taster HIGH abgibt.

Die 2te Fadet halt rauf oder runter.

Da ich meine Kenntnisse nur so aus YouTube und anderen Projekten abgeguckt habe und mir passend geschrieben habe....

was ist der Unterschied zwischen

int LED=2
const int LED=2

bzw was bewirkt es wenn ich const schreibe oder nicht?

Verstehe ich die Abkürzung meines Skatches richtig?
dadurch

Taster = digitalRead(IN);

....da ja Taster nur sein kann wenn IN auf HIGH bzw 1 ist. smoit muss ich nicht nochmal deklarieren das Taster auf 1 sein soll.

michael_x:
Die Funktion stat() (?? Namen sollten selbsterklärend sein :wink: )
kannst du durch

     digitalWrite(9,Taster);

ersetzen.

Herzlich willkommen, pumich !

Ja, HTML Programmieren ist was anderes, auch python hilft nicht viel :wink:
Der Reiz liegt darin, Winzlings-Controller zu programmieren, wo es auf ein paar kB Speicher ankommt.
Klar ist ein 2560 MEGA für dein Beispiel Overkill. Aber attiny Programmieren ist für den Anfang etwas kniffliger.

Viel Spass weiterhin

Stimmt, muss auch zugeben; ich wollte das "else" ausprobieren....

Ja... ich musste wählen... entweder fange ich mit attiny an bzw die ganze avr geschichten oder Arduino... die wahl viel auf arduino, es schien mir einfacher für den Einstieg.

ja der Mega ist extrem overkill um ne LED blinken zu lassen.... bin aber damit bewaffnet wenn ich mal größere Sachen irgendwann machen möchte....

bzw was bewirkt es wenn ich const schreibe oder nicht?

const ist eine Konstante und benötigt weniger Speicher

Mit den 2ten Skatch hab ich Probleme zu Posten, dieser ist länger als 9000 Zeichen... kann ich den irgendwie anders Posten?

in dem du auf Preview gehst und dann unter Attachment and other Options den Sketch einfügst

Danke ardubu,

und ebenfalls danke für die anderen Tipps und Hinweise.

Angesteuert wird eine 16 Segment Anzeige.... hier besteht bestimmt Verbesserungsbedarf...

Der Text ist erstmal Nebensache.... musste ja irgendwas Anzeigen lassen....

EDIT:
der merker ist unnütz, hatte den vergessen zu löschen, hatte was anderes ausprobiert und wieder verworfen und es fehlt eine delay bei der void durchlauf....
aber nichts desto trotz ist das bestimmt viel zu viel code....

hab_dich_lieb_ver4.ino (9.1 KB)

Es gibt keine "voids". Die Dinger heißen Funktionen.

Void ist eine Art Datentyp:

Steht für "leer" oder "nichts". Vor einer Funktionen bedeutet dass das kein Wert zurückgegeben wird.