Show Posts
Pages: 1 ... 84 85 [86] 87 88 ... 212
1276  International / Deutsch / Re: höhere Baudrate, Arduino Uno on: December 29, 2013, 02:05:20 pm
Irgendwas stimmt da bei mir nicht.
EDIT: Mit 9600 funktioniert alles Super.

Nimm mal eine andere Baudrate wie z.B. 19200!

Moderne Arduino-Boards haben keine Schwingquarze mehr, sondern Resonatoren und halten teilweise das Timing nicht 100% ein.

Dazu kommen prinzipbedingte Toleranzen durch Rundungsfehler, wenn die Taktfrequenz in Impulslängen umgerechnet werden, auch auf der PC-Hardware. Manche Baudraten funktionieren zuverlässiger in beliebigen Kombinationen von Sender und Empfänger als andere.
1277  International / Deutsch / Re: höhere Baudrate, Arduino Uno on: December 29, 2013, 01:25:45 pm
Mal ne kleine und bestimmt einfache Frage für euch, kann ich die Baudrate vom Arduino höher als 9600 machen ?
Ich bekomme nur Fehlerhafte Übertragen hin(mit sehr sehr simplen Scripts).  smiley-confuse

Ich hab schon gesucht wie ein Blöder aber nichts richtiges gefunden.
(falls es doch schon sowas gibt, es tut mir leid  smiley-red )

Ja, Du kannst bei "Serial.begin()" jede Baudrate bis hoch zu 115200 einstellen, die auch im seriellen Monitor eingestellt werden kann.

Die eingestellte Baudrate im Sketch bei "Serial.begin()" und im seriellen Monitor muß dabei jeweils gleich sein.


1278  International / Deutsch / Re: analogRead - Wert mit Array vergleichen on: December 29, 2013, 01:05:59 pm
So, ein paar Fragen sind aufgetaucht.

Code:
#define NUMWERTE sizeof(barTable)/sizeof(barTable[0])

Warum wird hier dividiert?

Das ist die gängige Standardmethode, um die Anzahl der Elemente in einem Array zu ermitteln.

Anzahl Elemente = Größe des Arrays in Byte dividiert durch die Größe des ersten Elements im Array in Bytes

warum gibt sizeof(barTable) 306 aus?;

Weil das gesamte Array 306 Bytes groß ist (153 Elemente mal 2 Bytes pro Element).

warum gibt sizeof(barTable[0]) 2 aus?;

Weil ein Array-Element vom Typ "word" eine 16-bit große Variable mit 2 Bytes Größe ist:
const word barTable[]

"word" ist als Zahlentyp 2 Bytes (16 Bits) groß.

Bezogen auf die zweite Sub-frage:
1 byte = 8 bit
mit 8 bit lässt sich eine Dezimalzahl von 255 darstellen.

Und mit "word" (16 Bit) lassen sich 2^16 = 65536 Zahlen darstellen, Wertebereich von 0 bis 65535.

Da in Deiner Tabelle keine Drücke über 65,535 bar vorkommen, reicht der Wertebereich bis 65535 also aus, um alle Drücke in tausendstel bar mit nur 2 Bytes pro Wert abzuspeichern.

Zahlentypen mit 3 Bytes pro Wert (int24, 24 Bits)  kennt die Arduino-Software nicht.
1279  International / Deutsch / Re: Arduino Mega serial Puffer groesse on: December 28, 2013, 12:05:34 pm
Pro Port sind es 64 Bytes?

Pro Port und pro Richtung (Senden, Empfangen) werden 64 Bytes im RAM für den Puffer reserviert, sobald "Serial.begin" aufgerufen wird, also wenn man anfängt die Schnittstelle zu verwenden.
1280  International / Deutsch / Re: Kapazitiver Näherungsschalter mit Arduino? on: December 28, 2013, 12:03:38 pm
Hoffe jemand hat noch eine Idee.

Dass solche Sensoren für nichtleitende Objekte nur eine Reichweite von 5 bis 15 Millimetern haben, ist Dir aber schon klar, oder?

Schaue einfach mal in die Datenblätter kommerzieller "fertiger" Sensoren, Suchbegriff bei Conrad "kapazitiver nährungssensor".

Du willst also eine Wand "berührungslos auf 15mm Abstand" erkennen, oder wie darf man Deine Anfrage in diesem Thread verstehen?
1281  International / Deutsch / Re: Serielles Debuging global deaktivieren on: December 28, 2013, 11:59:41 am
Geht das komfortabel und falls ja, wie?

Du kannst einfach die Zeile mit "Serial.begin" auskommentieren, dann geht nichts mehr über die serielle Schnittstelle raus.

Wenn Du nicht nur die serielle Ausgabe vermeiden möchtest, sondern auch der Code aus dem Programm heraus soll, um z.B. eine kleinere Programmdatei zu erzeugen, müßtest Du mit bedingter Kompilierung arbeiten.
1282  International / Deutsch / Re: Arduino Mega serial Puffer groesse on: December 28, 2013, 11:18:09 am
Die FIFO-Puffer der HardwareSerial-Schnittstellen belegen je 64 Bytes für den Sendepuffer und 64 Bytes für den Empfangspuffer und können prinzipbedingt maximal je 63 Zeichen zum Zwischenpuffern aufnehmen.

Die Puffergröße steht in der Arduino-Software im Quelltext und da die Arduino-Software "Open Source" Software mit mitgeliefertem Quelltext ist, kannst Du die Puffergröße auch im Quelltext der Arduino-Software ändern und Dir eine geänderte Softwareversion mit anderen Puffergrößen für die HardwareSerial-Schnittstellen erzeugen. Wenn Du Spass dran hast.
1283  International / Deutsch / Re: if in Setup teil on: December 28, 2013, 11:11:28 am
Kann man das im loop unterbinden?

Z,B. mit einer if-Abfrage, und einen neuen Text auf dem Display immer nur dann ausgeben, wenn sich der Text geändert hat, der ausgegeben werden soll.
1284  International / Deutsch / Re: Hilfe für Läuferprojekt on: December 28, 2013, 09:04:35 am
Ich plane mit einem Arduino Mega einen sechs beinigen Roboter/Läufer zu bauen.
Das Budget sollte die 150 Euro nicht überschreiten smiley-wink (ich denke das ist auch was smiley-grin)

Ich habe an drei Servos pro Bein gedacht.

Einen Roboter mit 18 Servos  und so kleinem Budget?

Da planst Du wohl nur mit den allerbilligsten und leistungsschwachen Micro-Servos mit Plastik-Getriebe in der Preisklasse von ca. 4 EUR pro Stück, ggf. vom Chinaversender?

Und alle Bauteile des Chassis sollen aus irgendeinem billigen Material komplett selbst gefertigt werden, weil im Budget zusätzlich zu den Servos, dem Arduino, einem Akkupack und dem Platten-Rohmaterial allenfalls noch Geld für ein paar Schrauben übrig ist?

Ich habe mal gegoogelt und hier was gefunden, der baut mit Hilfe von Bastelplatten, die in England bzw. USA unter den  Handelsnamen "Styrene" bzw. "Plasticard" angeboten werden solche kleinen Robots:
http://blog.oscarliang.net/arduino-quadruped-robot-stalker/ ==> laufen hat überhaupt nicht funktioniert
http://blog.oscarliang.net/simple-hexapod-robot-arduino/  ==> mit Kabelsteuerung vom PC
http://blog.oscarliang.net/arduino-hexapod-robot/

In Deutschland gibt es diese Platten wohl nur unter dem Namen PETG-Platten, die kann man jedenfalls auch unter Temperatureinwirkung verformen und das kann zum Biegen der Servohalterungen verwendet werden.

Ich weiß nicht, woraus Du Deine Teile anfertigen möchtest, aber es muss ja einerseits sehr leicht gebaut werden, damit die Micro-Servos nicht gleich die Flunder machen und für den Kauf fertiger Teile wird Dein Budget wohl kaum ausreichen, so dass Du Dir sicher insbesondere Gedanken zum Anfertigen einer leichten, stabilen und dabei dennoch extrem preiswerten Mechanik wirst machen müssen.
1285  International / Deutsch / Re: Windows 8 Treiber Problem on: December 28, 2013, 07:02:23 am
........Bla, Bla, Bla (unwichtig).

Tja, die Probleme der Windows-Anwender mit ihrem Windows.
http://forum.arduino.cc/index.php?topic=206806.0
1286  International / Deutsch / Re: ArduinoIDE: platzsparende snprintf Alternative on: December 27, 2013, 02:14:30 pm
Was genau bewirkt denn die "10" in den beiden Befehlen?

Das steht in der Library-Dokumentation des Befehls auf dieser Seite:
http://www.nongnu.org/avr-libc/user-manual/group__avr__stdlib.html#ga4f6b3dd51c1f8519d5b8fce1dbf7a665

Die "10" steht in dem Fall dafür, dass die Zahl im 10er Dezimalsystem formatiert werden soll.

Wenn Du stattdessen lieber eine Formatierung im Hexadezimalsystem zur Basis 16 hättest, würdest Du da den Parameter "16" statt "10" an die Funktion itoa übergeben.
1287  International / Deutsch / Re: Arduino USB-Problem (Gerät wird ausgeworfen und sofort wieder angemeldet) on: December 27, 2013, 01:37:06 pm
Verlängere mal Dein delay(1000); auf delay(10000); oder noch mehr.

Wenn das "Blong Blong" in den Pausen dann nicht auftritt, sondern immer nur wenn der Servo losfährt, dann ist Deine Servo-Stromversorgung viel zu schwach.

Ist das ein Laptop? Insbesondere USB-Ports an Laptops liefern oftmals nur viel weniger als 500 mA Strom.
1288  International / Deutsch / Re: ArduinoIDE: platzsparende snprintf Alternative on: December 27, 2013, 01:20:25 pm
Kann mir da bitte jemand auf die Sprünge helfen?

Warum brauchst Du für so eine kleine Formatierungsaufgabe eine Riesenfunktion mit so viel Overhead?
Was sind supplyV und temp für Datentypen? Integer?

Code:
char msg[26];

void formatmsg(int supplyV, int temp)
{
//  memset(msg,0,sizeof(msg));
  strcpy(msg,"v=");
  itoa(supplyV,&msg[strlen(msg)],10);
  strcat(msg,"&t=");
  itoa(temp,&msg[strlen(msg)],10);


Wenn Du den Puffer nach dem abschließenden Nullzeichen hübsch ausgenullt haben möchtest und noch ein paar Bytes Programmgröße übrig hast, kannst Du die memset-Zeile entkommentieren.
1289  International / Deutsch / Re: Servo an Arduino Mega macht Probleme? on: December 27, 2013, 11:31:01 am
Also er scheint den Sketch wohl an dieser Stelle abzubrechen aber wieso?

Also Dein Arduino resettet ständig und startet laufend neu.
Offenbar immer dann, sobald im Setup der Servo per attach zugeschaltet wird.

Bei so kräftigen Stromverbrauchern wie einem Servo kann das passieren, wenn die Spannungsversorgung des Boards wegen zu viel Stromverbrauch durch den Servo zusammenbricht. Oder wenn der Servo falsch angeschlossen ist.

Wenn das aber auch ohne Beschaltung (nichts ist am Board angeschlossen) passiert, liegt eventuell irgendwo ein Kurzschluss auf (oder unter) dem Board vor. Oder ein Defekt.

Du hast nicht zufällig kleine Drahtstücke abgeschnitten, die jetzt lose auf dem Board liegen und an irgendwelchen Leiterbahnen oder Bauteilen einen Kurzschluss verursachen können? Oder das Board auf einer leitfähigen Unterlage abgelegt?

Hat das Board irgendwelche Kurzschlüsse oder vielleicht Überspannungen über 5V (außer am Netzteilanschluss) abbekommen? Oder hast Du versucht die 5V-Stromversorgung des Servos an einem Arduino-Ausgang abzugreifen?

Eventuell könnte man versuchen, einen kleinen Test-Sketch zu programmieren um herauszufinden, ob und ggf. welche Pins noch gefahrlos auf Output geschaltet werden können, ohne dass sich das Board resettet. Pin-9 scheint an diesem Board ja wohl mindestens ausgefallen zu sein und kann nicht mehr als Output verwendet werden.

Vielleicht das hier mal laufen lassen (ohne irgendwas am Board anzuschließen):
Code:
// Kurzschluss-Testprogramm für DigitalPins Arduino MEGA
// Schaltung: Nichts an das Board anschließen!
int pins=54;

void setup()
{
  Serial.begin(9600);
  for (int i=2;i<pins;i++)
  {
    Serial.print("Teste Pin ");
    Serial.print(i);
    pinMode(i,OUTPUT);
    delay(10);
    digitalWrite(i,HIGH);
    delay(10);
    digitalWrite(i,LOW);
    pinMode(i,INPUT);
    Serial.println(" OK");
  }

}

void loop()
{
}

Läuft das Fehlerfrei durch alle Ports? Oder wo bleibt es hängen und startet neu?
1290  International / Deutsch / Re: Servo an Arduino Mega macht Probleme? on: December 27, 2013, 10:49:26 am
Ich verstehe das alles nicht mehr. Trotzdem Danke für deine Hilfe und Geduld smiley

Ich verstehe es auch nicht.

Vielleicht kannst Du mal in einen der Blinke-Sketche einige Serial-Debug-Ausgaben mit einbauen, etwa so:
Code:
#include <Servo.h>
 
Servo myservo;
void setup()
{
  Serial.begin(9600);
  Serial.println("Starting...");
  myservo.attach(9);
}
void loop()
{
  Serial.println("Running...");
  myservo.write(0);
  delay(1000);
}

So dass man im Serial Monitor erkennen könnte, ob der Sketch ständig ausgeführt wird, ob er immer wieder neu startet, oder ob er gar nicht ausgeführt wird?
Pages: 1 ... 84 85 [86] 87 88 ... 212