Show Posts
Pages: 1 ... 79 80 [81] 82 83 ... 95
1201  International / Deutsch / Re: String zu Int on: March 06, 2012, 12:56:16 am
Ein einfaches
Code:
char *string = "101";
hilft da auch schon.
Leider hat die String-Klasse keine Methode, um direkt die Adresse des internen Buffers zu bekommen. Das wäre für einige Sachen eine Erleichterung. Es würde ja ein "const char*" reichen, damit keiner von extern im Buffer rumrühert.
1202  International / Deutsch / Re: Servosteuerung über "Servo lib" macht keinen Muckser on: March 05, 2012, 02:52:26 pm
Quote
Habe deshalb alles abgesteckt und will nur die LED an Pin 13 mit delay(4000), also im 4 Sek.-Rhythmus blinken lassen. Sie blinkt aber recht exakt im 1 sek. Rhythmus
Hmm, aber wenn Du ein "delay(16000) einstellst, sind es dann tatsächlich 4 Sekunden? Ansonsten würde ich fast darauf tippen, das der "normale" Blink-Sketch auf dem Board läuft.
1203  International / Deutsch / Re: Bei steigender Flanke in nächste Funktion springen on: March 05, 2012, 02:26:21 pm
Irgendwie passt Dein Sketch aber nicht ganz zu dem, was Du machen willst. Du schreibst, das bei einer steigenden Flanke "reagiert" werden soll, in Deinem Sketch reagierst Du aber nur auf HIGH oder LOW Deines inputPin. Du musst Dir, wie bereits geschrieben aber den alten Zustand merken und dann mit dem aktuellen vergleichen, um einen Flankenwechsel zu erkennen. Interupts würden auch gehen, sind aber etwas komplizierter und unübersichtlicher. Für den Anfang reicht sicher erstmal:
Code:
const int inputPin = 2;
const int outputPin = 13;

int count = 1;
int state = LOW;
int laststate = LOW;


void setup() {               
  pinMode(outputPin, OUTPUT);
  pinMode(inputPin, INPUT); 
}

void loop(){
 state = digitalRead (inputPin);
 
 //Flankenwechsel erkennen
 if(laststate == LOW && state == HIGH) {
    //abhängig vom counter passende funktion aufrufen
    switch(count) {
     case 1:     led_1();
                 break;
     case 2:     led_2();
                 break;
     case 3:     led_3();
                 break;
     //hier weitere "case" fälle ergänzen
    }   
    //zähler erhöhen
    count++;
    //zähler zurücksetzen
    if(count == 10) count = 1;
 }
 
 //letzten zustand merken
 laststate = state;
}

void led_1()
{
  digitalWrite(outputPin, HIGH);   // set the LED on
  delay(1000);              // wait for a second
  digitalWrite(outputPin, LOW);    // set the LED off
  delay(1000);              // wait for a second
}
 

void led_2()
{
  digitalWrite(outputPin, HIGH);   // set the LED on
  delay(100);              // wait for a second
  digitalWrite(outputPin, LOW);    // set the LED off
  delay(100);
}

void led_3()
{
  digitalWrite(outputPin, HIGH);   // set the LED on
  delay(100);              // wait for a second
  digitalWrite(outputPin, LOW);    // set the LED off
  delay(100);
}
1204  International / Deutsch / Re: RF12 Datenstruct senden, empfangen und wieder trennen on: March 03, 2012, 08:29:39 am
Du brauchst die Daten nichtmal kopieren. Es reicht am Ende den Puffer auf den Datentyp "payload" zu casten.
1205  International / Deutsch / Re: Projektvorstellung: Analoguhr mit Amperemetern on: March 03, 2012, 03:35:09 am
Nicht schlecht. Welches Oszi hast Du Dir denn geleistet? Sieht wie ein UNI-T UTD 2xxx aus. Ist das die 50 MHz oder die 100 MHz Variante? Bin nämlich auch am überlegen. Wie zufrieden bist Du mit dem Teil?
Mario.
1206  International / Deutsch / Re: Was brauch ich alles für...? on: March 01, 2012, 10:05:49 am
Mit dem Arduino Ethernet kommst Du vermutlich bei allen Shops günstiger, als mit einem Arduino Uno und einem Ethernet-Shield. Mit Board und Shield bist Du allerdings flexibler. Der Arduino Ethernet ist im printzip aber ein "normaler" Arduino, man muss ja die Netzwerk- und SD-Schnittstelle nicht benutzen. Aufpassen muss man allerdings ein wenig, da einige Pins halt bereits belegt sind.
1207  International / Deutsch / Re: 8x8 Matrix Buchstaben Programmieren ??? on: March 01, 2012, 04:53:25 am
Achtung - Ironie  smiley
Quote
Negative Widerstände gibt es aber nicht zu kaufen
Das ist kein Problem, dann drehst Du die Widerstände einfach rum.  smiley-evil
Achtung - Ironie  smiley
1208  International / Deutsch / Re: Brauche schnelle Hilfe ... Weiß nicht weiter! ( RPM auslesen) on: March 01, 2012, 03:33:04 am
Das Problem scheint ja schon zu sein, überhaupt irgendwas über den Serial Monitor auszugeben. Das wäre das erste Problem das ist angehen würde.
@ReDSnoW:
Dein Arduino ist über die USB-Schnittstelle mit dem PC verbunden und Du hast auch eine "neue" serielle Schnittstelle (COMx) die erkannt wird, wenn Du den Arduino anschliesst?
Du hast das "Hello World" Beispiel compiliert und auf den Arduino übertragen, ohne das es Fehlermeldungen gab. Stimmt das soweit?
Wenn Du dann den Serial Monitor an der IDE öffnest, gibt es unter in dem Fenster auf der rechten Seite ein Einstellmöglichkeit für die Übertragungsgeschwindigkeit. Da müßte "9600 baud" stehen. Wenn nicht, versuch erstmal das einzustellen, damit die Überrtagungsgeshwindigkeit zu der in Deinem Sketch passt.
Achso, Du hast auch nicht den Lüfter an Pin0 oder Pin1 angeschlossen, oder versehentlich die 12V vo Lüfter auf eines der Arduino Pins gelegt?
1209  International / Deutsch / Re: Zwei LCD´s oder mehr an ein Board? (Mega 1280) on: March 01, 2012, 01:20:14 am
Wow, auf die Idee die weiteren LCDs parallel anzuschliessen und nur für jedes Display ein andere Enable Pin zu verwenden muss man erstmal kommen.
Nicht schlecht.
1210  International / Deutsch / Re: Brauche schnelle Hilfe ... Weiß nicht weiter! ( RPM auslesen) on: February 29, 2012, 01:29:39 pm
Ok, Du hast jetzt Links gepostet, wie andere es gemacht haben, aber nicht wie Du Deinen Lüfter angeschlossen hast. Welchen Wert Dein Widerstand hat, etc. Der Hinweis ob Du den gleichen Code wie im Link verwendest, oder ihn angepasst hast (z.B. an den Pin an dem der Lüfter hängt). Wenn wir nicht wissen was DU gebaut hast, können wir Dir auch nicht wirklich helfen.
Gut wäre auch zu wissen, ob Du die IDE 1.0 oder noch die alte IDE 023 verwendest.
Wenn Du Werte mit "Serial.println()" ausgibst, bekommst Du die denn auf dem serial Monitor angezeigt, oder geht noch nicht mal das?
1211  International / Deutsch / Re: Frage zu Variablien on: February 29, 2012, 01:25:10 pm
Spontan würde ich ich vorschlagen: http://arduino.cc/en/Reference/Array. Namen von Variablen kannst Du zur Laufzeit nicht ändern, da es dann auf dem Arduino nur noch eine Speicheradresse ist, der Name ist dann wurscht. Den braucht nur der Compiler, damit er weiss welchen Wert Du in Deinem Code jeweils meinst.
Beschreib doch mal, was Du mit der Variable "whichLed" eigentlich machen willst, in Deinem Codebeispiel wird die nämlich nirgendwo verwendet.
1212  International / Deutsch / Re: Webserver ansteuern on: February 29, 2012, 12:11:14 pm
Das ist natürlich richtig. Ich wollte ja auch nur darauf hinweisen das ein Webserver nicht die typische Anwendung auf dem Arduino ist.
1213  International / Deutsch / Re: Webserver ansteuern on: February 29, 2012, 11:51:03 am
Was der Webserver auf dem Arduino kann, liegt einzig an Deiner Programmierung. Es gibt einige Libs, die eine Art Framework für Webserver zur Verfügung stellen, allerdings sind die zwangsläufig recht Speicherintensiv.
Wir reden hier von einem Microcontroller mit einigen KB SD- und Flash-RAM. Alleine eine Webseite mit entsprechendem Ajax-Code auszuliefern (die muss ja irgendwo herkommen) sprengt im schlimmsten Fall schon die 32kb Flash-RAM die Du auf dem Arduino hast.
GET oder POST kannst Du auch selbst entscheiden. GET ist aber erstmal einfacher, weil Du auch die URL beim Aufruf besser manipulieren kannst.
1214  International / Deutsch / Re: Webserver ansteuern on: February 29, 2012, 09:31:05 am
OK, wie nachtaktiv68 bereits "geglaskugelt" hat, ist die von Dir markierte Stelle tatsächlich das Problem.
Der Aufruf
Code:
TextFinder finder( client );
definiert eine Instanz von TextFinder, der Deinen "client" als Eingabe verwenden soll. Allerdings gibt es die Variable "client" an dieser Stelle noch gar nicht.
Du mußt also den TextFinde einfach später initialisieren. z.B. an folgende Stelle
Code:
  // listen for incoming clients
EthernetClient client = server.available(); //Client Verbindung herstellen
  if (client) {
      TextFinder finder( client );
Der Vorteil mit TextFinder ist dann, das Du die einzelnen Bytes nicht mehr selbst aus dem Stream fischen musst, sonder das Dir das abgenommen wird.
Wichtig ist dann nur die Reihenfolge der Parameter in der URL.
Der nächste Schritt ist dann nur noch das Absuchen des Streams. Damit das ganze einfacher zu programmieren ist, solltest Du aber erstmal Dein HTML-Formular aufräumen und da vor allem nur ein einziges Fomular draus bauen. Zur Zeit hast Du ja 2 Formulare, die unterschiedliche Parameter haben, das ist für das Lesen des Streams ziemlich ungünstig.
1215  International / Deutsch / Re: Kurze Frage bezüglich des digitalWrite & pinMode Befehls on: February 29, 2012, 08:02:19 am
Damit hast Du vollkommen recht. Mir ging es auch nur um die Vollständigkeit, denn die ursprüngliche Frage zielte ja auf das gleichzeitige Setzen von Input/Output Richtungen ab. Mein "Nein, geht nicht" hat ja nur in bezug auf digitalWrite() und pinMode() bestand, nicht aber generell.
Pages: 1 ... 79 80 [81] 82 83 ... 95