Show Posts
Pages: 1 [2] 3 4 ... 200
16  International / Deutsch / Re: Projekt realisierbar? on: August 18, 2014, 11:16:13 am
Funktionsprinzip sind zwei Dauermagnete die sich abstoßen.
Damit das stabil bleibt sind außenrum Spulen die passend angesteuert werden müssen.

Dazu braucht es einen Regelkreis bzw Sensoren, sind die Spulen Sensor und Aktor gleichzeitig ?
Physikalisch wäre es denkbar, wenn der Magnet droht "auszubrechen" , wird in der betreffenden Spule eine Spannung induziert.
Der Arduino misst diese, und steuert die betreffenden Spule an.

So meine Theorie ....   

So ungefähr. Außer, dass es viel mehr als zwei Dauermagnete sind. Und dass Spulen natürlich keine Sensoren sind, sondern dass da im Rahmen der Regelung schon Magnetfeldsensoren zum Einsatz kommen.

Die Herstellerfirma http://www.crealev.com/ und andere haben diese und ähnliche Erfindungen mit zahlreichen internationalen Patenten abgesichert. Daher kannst Du natürlich auch zig Patentschriften studieren, in denen das eine oder andere Dateial ausführlich dargestellt wird, einschließlich dessen, worauf Patentanspruch erhoben wird. Eine kleine Patentrecherche per Google fand zum Beispiel das, einschließlich 10 Bildern:
http://www.google.com/patents/US20080218929?hl=de&cl=en


17  International / Deutsch / Re: Bekomme man sowas auch ohne array hin? on: August 18, 2014, 10:11:44 am
z.b minute 2:21 würde das gern über ein teensy laufen lassen, bin mir nur nicht sicher ob das geht ohne das ich die Bilder einzeln in 1 und 0 darstellen muss! Da dann der Speicher auf dem teensy bald voll wäre  smiley-roll-sweat

Die Zeichen mußt Du einzeln darstellen. So wie jeder Text, einschließlich dieses Forumsbeitrags, aus einzelnen Zeichen besteht und dargestellt wird.

Für die Fontdarstellung auf einem Gerät ohne eingebaute Schriftfonts mußt Du Dir einen Bitmapped-Font im Sketch speichern.  Wieviel Speicherplatz der Font belegt, richtet sich nach der Größe der Zeichen. Mal angenommen, ein Zeichen Deines Fonts ist 16*12 Pixel groß, dann ist das Zugleich die Anzahl der Bits, die der Font im Speicher belegt. 16*12=192 Bits = 24 Bytes pro Zeichen.

Wenn Du 11 Zeichen benötigst für die Ziffern 0 bis 9 und den Doppelpunkt, belegt das 11*24 Bytes =264 Bytes.

Um RAM-Speicher zu sparen, kann man die gesamten Bytes im Flash-Programmspeicher speichern und sich nur das einzelne Zeichen ins RAM laden, das gerade ausgegeben werden soll.

D.h. im Programm würdest Du 264 Bytes Flash-Speicher zum Abspeichern des Fonts und 24 Bytes RAM-Speicher für eine Uhrzeitanzeige aus max. 11 verschiedenen Zeichen benötigen (bei Fontgröße 16*12 Pixel).
18  International / Deutsch / Re: Interrupt für mehr als LED blinken on: August 18, 2014, 07:54:25 am
Warum hat ein Interrupt hier nichts verloren??? Ein Interrupt hat doch nicht
zwingend etwas mit delays zu tun oder? Ich will doch nur einfach nicht, dass
der Prozessor die ganze Zeit damit beschäfftigt ist 5V abzufragen...

Du hast irgendwie ein ganz schlechtes Gefühl dafür, was wieviel Zeit kostet.

Um die 0V/5V abzufragen, braucht der Controller ca. 4µs, wenn Du den Arduino-Komfortbefehl digitalRead verwendest.

Wenn Deine Regelschleife 1 ms benötigt (was sie bei Deiner Art der Programmierung locker übertreffen dürfte), dann macht es den Unterschied, dass Regelschleife statt 1,000ms plus Abfrage dann 1,004 ms dauert.

Macht es wirklich einen Unterschied, ob Deine Regelschleife (mal angenommen)
1000/1,000 = 1000 mal pro Sekunde oder nur
1000/1,004 = 996 mal pro Sekunde durchläuft?

Wenn Deine Regelschleife zu langsam ist, beschleunige die Regelschleife!
Oder wenn 4µs für ein digitalRead zu langsam sind, verwende direkte Zugriffe auf die Controller-Register!
19  International / Deutsch / Re: Interrupt für mehr als LED blinken on: August 18, 2014, 07:22:01 am
Gibt es eine ganz andere Lösung ohne Interrupt?

Du möchtest zwei Regelschleifen verwenden, je nach Stand eines Umschaltpins.

Wenn das komplett unterschiedliche Regelschleifen sind, machst Du zwei komplett unterschiedliche Regelschleifen, die Du aus der loop heraus aufrufst:
Code:
void loop()
{
  if (digitalRead(UMSCHALTPIN)==HIGH) eineRegelschleife();
  else andereRegelschleife();
}

Und wenn sich die Regelschleifen nur minimal unterscheiden, machst Du eine einzige Regelschleifenfunktion mit einem Parameter, und übergibst den Zustand des Schalters als Parameter an die Funktion, die dann mit einer if-Abfrage unterscheiden kann, was zu tun ist. Dann sähe die loop-Funktion so aus:
Code:
void loop()
{
  regelschleife(digitalRead(UMSCHALTPIN));
}
20  International / Deutsch / Re: MySmartUSB light und OSX - SpannungsVersorgung für ISP on: August 18, 2014, 06:07:11 am
Muss ich die ProgrammierSpannung vom „MySmartUSB light“ ausschalten oder „kappen“-

Ja, eine "doppelte Spannungsversorgung" kann zu erheblichen Ausgleichsströmen führen, wodurch Bauteile schmoren oder durchbrennen können.

Mal kurz in die Anleitung Deines Programmers reingeschaut:

Die Spannungsversorgung wird offenbar nur beim Brennen eingeschaltet, so dass Du den Programmer gefahrlos an ein mit Spannung versorgtes Board anschließen kannst, ohne dass etwas passiert, solange Du keinen Brennvorgang startest.

Und vor dem Starten eines Brennvorgangs müßtest Du unbedingt die Spannungsversorgung über den ISP abschalten, wenn das Board bereits anderweitig mit Spannung versorgt wird. In der Anleitung wird das als "aktiv" bzw. "inaktiv" bezeichnet und Du kannst im PDF nach diesen beiden Begriffen suchen.



21  International / Deutsch / Re: Mega 2560 - Power Saving - Strom sparen on: August 18, 2014, 05:46:25 am
hab meinen zweiten Mega 2560 erhalten und habe beim "alten" den Spannungsregler runtergelötet und nochmal verglichen.

Und was ist mit der Power-On LED?
Hast Du die nicht ausgelötet?

Laut Schaltplan ist die LED auf dem MEGA2560 Board grün und hat einen 1K Vorwiderstand.
Grüne LED = 2,5V Vorwärtsspannung, macht 2,5V an 1K, I=2,5/1000= 2,5 mA

D.h. Auslöten der ständig leuchtenden Power-On LED bringt ca. 2,5 mA.

Edit/Nachtrag: Und was ist eigentlich mit dem 3.3V Spannungsregler? Brauchst Du 3.3V? Weil der 3.3V Regler braucht doch auch einen Ruhestrom von ca. 5.5 mA laut Datenblatt, falls auf Deinem Board der MC33269D-5.0 verbaut ist, wie er im Referenzdesign des MEGA-Boards enthalten ist. Wenn Deine Schaltung keine 3.3V benötigt, kannst Du also nochmal sparen, wenn Du auch den 3.3V Regler auslötest und nicht nur den 5V-Regler.
22  International / Deutsch / Re: Arduino 1.5.7 Beta IDE Text sieht komisch aus on: August 16, 2014, 02:44:17 pm
Fehler tritt ebenfalls auf einem Dell WinXP auf und einen IBM T42 ebenfalls mit XP, Sowie auf meinem Win7 Asus 8GB Ram 1TB HDD

Hast Du dabei die "Installer" oder die "ZIP-File" Version installiert?
Schon mal zwischen den beiden Versionen gewechselt, ob es einen Unterschied gibt?

Welche native Auflösung (maximale Auflösung) hat Dein LCD-Monitor und was hast Du als Bildschirmauflösung unter Windows eingestellt?
23  International / Deutsch / Re: Arduino 1.5.7 Beta IDE Text sieht komisch aus on: August 16, 2014, 02:21:09 pm
Betriebsystem ist Windows 7 Home Premium 64 Bit. und habe deine Möglichkeiten Probiert, ohne erfolg.

Bei Windows ist immer die erste Maßnahme: Windows runterfahren und neu starten.
Schon gemacht? Besteht der Fehler dann immer noch?

Hat der Rechner genügend RAM-Speicher? Ist noch ausreichend freier Speicher auf der Festplatte frei?

Windows neigt zum Beispiel dazu, falsche Fonts zu verwenden, wenn kein RAM-Speicher mehr frei und die Auslagerungsdatei für virtuellen Speicher entweder abgeschaltet oder total vollgelaufen ist.

Teste auch mal, ob in den beiden Verzeichnissen
C:\[Installationspfad]\arduino-1.0.5\java\lib\fonts
C:\[Installationspfad]\arduino-1.5.7\java\lib\fonts
die exakt selben Fontdateien vorhanden sind!
24  International / Deutsch / Re: Arduino 1.5.7 Beta IDE Text sieht komisch aus on: August 16, 2014, 02:02:25 pm
wo kann man das Problem denn den Entwicklern melden?

Das Problem sitzt zu 99% ca. einen halben Meter vor Deinem PC-Monitor!

Prüfe als erstes lieber mal die "preferences.txt" Datei Deiner 1.5.7-Installation und was da drinsteht!

Zum verwendeten Font könnte da so etwas drinstehen:
Code:
# font size for editor
editor.font=Monospaced,plain,12
# Monaco is nicer on Mac OS X, so use that explicitly
editor.font.macosx = Monaco,plain,10

# anti-aliased text, turned off by default
editor.antialias=true

Setze ggf. als erstes mal das Antialising auf "false" und schalte es ab, wenn es eingeschaltet ist. Oder schalte es auf "true", wenn es abgeschaltet ist. Danach die Arduino-IDE einmal neu starten.

Ergibt sich ein Unterschied?

Zusatzfrage: Welches Betriebssystem?
Falls es Mac OSX ist, müßte die Schriftart "Monaco" auf dem Rechner installiert sein, wenn Monaco in der preferences.txt drinsteht.
25  International / Deutsch / Re: CS-Pin in ethercard Bibliothek vom Programm ändern on: August 16, 2014, 12:07:56 pm
--> IP vom DHCP hat er schon mal bekommen.
....
Wird das auch in der ether.begin-Routine richtig gestellt?

Sieht ja wohl ganz danach aus.
26  International / Deutsch / Re: CS-Pin in ethercard Bibliothek vom Programm ändern on: August 16, 2014, 11:19:25 am
Kann ich den Parameter irgendwie aus dem Arduino-Programm ändern?

Probiere mal aus, ob Du die Funktion wahlweise mit zwei oder mit drei Parametern aufrufen kannst!

Soweit ich das sehe, handelt es sich dabei um eine Funktion mit optionalem Parameter. Gibst Du den dritten Parameter an, wird der übergebene Parameter genommen. Gibst Du den dritten Parameter nicht an, wird stattdessen der Default-Parameter aus der Funktionsdeklaration genommen.
27  International / Deutsch / Re: Nähmaschinenmotor steuern on: August 16, 2014, 07:18:40 am
Ein Phasenanschnittsteuerung scheint generell mit einem kleinen Leistungsverlust verbunden zu sein, oder?

Ja. Etwas Verlust ist immer, wenn die Schaltung keine Überbrückung am Ende der Regelung hat.

Wie ist das mit Deinem bisherigen Nähmaschinen-Fußpedalregler, überbrückt der am Ende seiner Regelkurve den Regler und schaltet die letzten Leistungsprozente dann voll durch?
28  International / Deutsch / Re: 3LED's fade in/out Übergang on: August 16, 2014, 06:47:22 am
Gibt es hier eine einfache Lösung oder einen Beispielcode?

Ja klar gibt es Beispielcode!

Um drei LEDs nacheinander abzuarbeiten, schaue Dir Beispiele für for-Schleifen an!

Und um zyklische Steuervorgänge durchzuführen, müßtest Du ertmal haben:
- die Gesamtdauer eines Steuerzyklus
- die Startzeit eines Steuerzyklus
- und Dir dann für jede Millisekunde innerhalb des Zyklus die zu steuernden Werte ausrechnen
Gesteuert wird dann nach Zeitablauf über den Stand des millis() Timers.

Gesamtdauer eines Steuerzyklus wie von Dir beschrieben:
3 LEDs mal (2 Sekunden Fade-In plus 10 Sekunden Dauerlicht + 2 Sekunden Fade-Out) = 3*14 = 42 Sekunden
Abzüglich der Zyklenüberschneidung beim Faden von 1s beim Fade-In/Out = 42-3 = 39 Sekunden
Also alle 39 Sekunden wiederholt sich ein Steuerzyklus.

Die Logik für die Startzeit eines Zyklus ist dann einfach (alteStartzeit+39000L).
Aus dem Stand des millis() Timers minus Startzeit des Zyklus bekommst Du einen Wert zwischen 0 und 39000, und Du brauchst jetzt nur noch eine Funktion schreiben, der Du diese Zykluszeit als Parameter übergibst und die zu jeder Zeit den Helligkeitswert der drei LEDs ausrechnet.
29  International / Deutsch / Re: Solved // Datum von gestern ohne Library berechnen on: August 15, 2014, 02:56:49 pm
weil ich mit dem return Befehl nicht klar komme.

Nicht klar?
Du kannst nicht programmieren!

Funktionen sind das, woraus ein C-Programm besteht.
Funktionen können einen sogenannten Rückgabewert haben, oder sie haben den Rückgabewert "void", was für "kein Rückgabewert" steht.

Wenn Du eine Funktion void deklarierst:
Code:
void test()
dann kann die Funktion natürlich nicht irgendwo mit return eine Zahl als Rückgabewert zurückliefern.

Wenn Du es trotzdem versuchst, dann gibt es Mecker vom Compiler.
Und das zu Recht.

Beispielcode zum Ausrechnen einer Julianischen Tageszahl:
Code:

long julianDay(int Jahr, int Monat, int Tag) // Rückgabewert dieser Funktion ist "long"
{
  Jahr+=8000;
  if(Monat<3) { Jahr--; Monat+=12; }
  return (Jahr*365L) +(Jahr/4) -(Jahr/100) +(Jahr/400) -1200820 +(Monat*153+3)/5-92 +Tag-1;
}


void setup() {       
  Serial.begin(9600);
  int Jahr=2014, Monat=8, Tag=15; 
  long JD=julianDay(Jahr, Monat,Tag);
  Serial.print("Die Julianische Tagesnummer ist: ");
  Serial.println(JD);
}

void loop() {}

Du benötigst dringend ein wenig Grundwissen, wenn Du Dein Arduino-Board sinnvoll programmieren möchtest!
30  International / Deutsch / Re: Sounderkennung mit Display on: August 15, 2014, 11:16:18 am
Hardwaremässig habe ich somit schon mal den Durchblick. Mit der Programmierung haperts aber noch.
Kann mir jemand auf die Sprünge helfen wie man sowas angeht?
Es muss ein Counter auf einem Display laufen, der dann durch ein Eregnis (1 Minute kein Ton) gestoppt wird.

Spitzenpegelmessung mit 60 Sekunden Timeout.

Jedesmal, wenn der über das Mikrofon gemessene Spitzenpegel oberhalb eines von Dir festgelegten Mindestpegels liegt, wird ein Sekundenzähler auf 0 zurückgesetzt. Erreicht der Sekundenzähler 60, gab es eine Minute lang keinen ausreichenden Pegel mehr. Dann die abschließende Endzeit anzeigen und Ende.

Für vergleichende Messungen wäre es wahrscheinlich vorteilhaft, immer dasselbe Musikstück abszuspielen, möglicherweise irgendwas technomäßig-basslastiges, bei dem die Spitzenpegel sehr oft bei den schnellen Bassschlägen auftreten.

Inwieweit aber "maximale Lautstärke" irgendeine Vergleichbarkeit bringt? Wenn ein Lautsprecher generell eine deutlich höhere Lautstärke bringt als ein anderer?  Müßte man die Wiedergabe dann nicht auf "gleiche Lautstärke" einstellen und dann vergleichen?
Pages: 1 [2] 3 4 ... 200