Show Posts
Pages: [1] 2 3 4
1  International / Deutsch / Re: LiPo Monitor - AnalogRead wirft komische werte! on: March 21, 2014, 07:30:46 am
Sorry Leute ich habe euch und das Projekt ziemlich vergessen, das Wetter war zu gut um im Keller zu sitzen und an der Schaltung bzw. dem Code zu arbeiten.
Da ich jetzt gerade im Büro bin kann ich euch noch kein Bild und kein Code Posten.
Aber ich kann es ja mal versuchen zu beschreiben und sonst komm ich am WE sicher dazu das ganze zu Fotografieren.

Am Lipo sitzt jeweils ein Spannungsteiler ausser an der 1. Zelle da die ja 4,2Vmax hat und das kein Problem wird (Ist ein ProMicro 5V/16Mhz), welche Widerstandsgrössen ich genommen habe weis ich leider auswendig nicht mehr, der Output mit Voltmeter liegt jedoch zwischen 3.5 und 4.5V.

An GND sitzt eine Diode um den Arduino zu schützen, falls man den Akku dummerweise falsch einsteckt. Die XH Buchse verhindert zwar eine komplette verpolung ziemlich gut, aber da ich auch 3S LiPo's nutze und man den dann um ein Pin verschiebt einstecken könnte dieser zusätzliche schutz (sonst liegt an GND +4.2V und an der ersten zelle eine Minus Spannung an.

Hinter dem Spannungsteiler ist aktuell ein ca. 15cm langer Draht welcher provisorisch auf die Pins des Aruino gelötet ist. Ich schätze das Kabel ist der übeltäter, da muss wohl entweder direkt beim Arduino noch Kapazität ran oder ein Pulldown Wiederstand.
Beim Test mit Pulldown sah es zumindest recht gut aus, wenn auch die Werte im Arduino immer noch sehr stark schwankten nach dem Multiplizieren mit dem Spannungsteiler.

Wie sollte die Schaltung denn ideal aussehen? Sollte ich einen kleinen Kondensator platzieren oder müsste das auch ohne gehen?

Scheinbar gäbte es ja fertige ICs, die die Spannung messen und per I2C ausgeben. Aber 1. müsste ich dann wohl schon fast eine Platine anfertigen und nicht einfach eine Lochrasterplatine verwenden können und zum 2. geht es mit den Spannungsteilern ja bei den Billigen LiPo Buzzer auch.
2  International / Deutsch / LiPo Monitor - AnalogRead wirft komische werte! on: March 14, 2014, 10:29:12 pm
Hallo zusammen

Ich möchte mit einem Arduino einen bis zu 4 Zelligen Lipo überwachen.
Damit die Spannungen im Bereich unter 5V liegen habe ich an den Zellen 2-4 einen Spannungsteiler vorgeschaltet. Zur Sicherheit liegt an GND eine Diode damit falsch eingesteckte Lipos keinen schaden anrichten können.

Nun, mit dem Multimeter sieht das ganze recht gut aus, ich erhalte die Werte zwischen 4.1V (Zelle1 = direkt) und ca 3V bei den über dem Spannungsteiler...
Aber sobald ich das ganze mit Arduino versuche auszulesen erhalte ich ab und zu 1024 zurück, der Wert stimmt so also nicht.

Sind die Kabel vom Spannungsteiler zum Arduino zu lang oder muss ich noch was beachten?
Die Kabel sind momentan ca. 15cm lang.
3  International / Deutsch / Re: Hohe Ströme mit Mosfet schalten? on: March 13, 2014, 09:49:10 am
Ich habe gerade die Waare aus China erhalten und musste feststellen, dass es eben doch Schalter und keine Taster sind. Somit werde ich wohl eh ein KFZ Relais bevorzugen da einfacher zu lösen  smiley-wink
4  International / Deutsch / Re: Hohe Ströme mit Mosfet schalten? on: March 05, 2014, 08:03:48 pm
Hallo zusammen

Der Arduino ist so oder so vorhanden, es wird der Strom sowie die Spannung gemessen und auf einem Display angezeigt. Da das ganze ev. auch mal via BT schaltbar sein soll möchte ich das ganze auch gleich so aufbauen.

Ein Relais wäre aber wohl doch die bessere Lösung, zumindest für den Verbraucher mit bis 30A.
Wie würdest du den durchschalten? Gleich über einen Transistor über die 12V? Oder wäre das immer noch zu "gefährlich" für den Arudino? Ev. noch ne Diode davor?
5  International / Deutsch / Hohe Ströme mit Mosfet schalten? on: February 24, 2014, 06:35:23 am
Hallo zusammen

Ich stehe gerade vor einem Problem.
Ich muss von einer Autobatterie relativ hohe Ströme schalten, es geht dabei um ca. 30A.
Da mir entsprechende Schalter zu gross und Klobig sind und auch nicht ganz ins Design passen, muss ich mich mit einem Taster und einem Arduino vergnügen.

Nun bin ich mir etwas unsicher ob dies mit einem MOSFET so überhaupt realisierbar ist und bräuchte mal euren rat:
- Der Strom wird nicht mit PWM oder so geschaltet sondern bleibt konstant ein oder aus über längere Zeit.
- Die 30A sind Spitzenverbrauch, normal dürften es eher wenige A sein.
- Muss der MOSFET hierzu gekühlt werden oder ist die Verlustleistung zu vernachlässigen?
- Brauche ich ausser dem Ardu, einem Wiederstand und dem MOSFET noch andere Bauteile?
- Welchen MOSFET Empfiehlt ihr für solche Ströme?
- Geht das auch Problemlos mit stark schwankenden Verbrauchern? Es geht konkret um ein 12V 230V Wandler.
6  International / Deutsch / Re: Arduino Dezimalzahl trennen nach punkt on: February 15, 2014, 12:10:01 pm
okay irgend wie klappt es doch nicht ganz

Folgende Anforderungen stellt das Protokoll für welches ich die Daten bereitstelle:
GPS Longitude: ID 0x02 = dddmm.mmmm (alles vor dem Punkt)
ID 0x20 = dddmm.mmmm (alles nach dem Punkt.

475427424 sollte also werden:
4754
27424

Mein Code:
float temp = Lattitude / 100000 ;
Send(abs(temp)) ; // das passt
temp = (temp - abs(temp)) * 100000 ;
Send(abs(temp)) ; // die ersten stellen stimmen danach passts nicht mehr...

Ist float zu ungenau? Was habe ich sonst für möglichkeiten ?

7  International / Deutsch / Re: Arduino Dezimalzahl trennen nach punkt on: February 15, 2014, 11:05:03 am
Danke! Du hast mir die Lösung gebracht.
Da ich die zahl eh zuerst teilen muss (von cm zu m) weis ich ja den Multiplikator, somit müsste das eigentlich immer passen ohne die Prüfung!

8  International / Deutsch / Arduino Dezimalzahl trennen nach punkt on: February 14, 2014, 02:32:13 pm
Hallo zusammen

Um Daten zu übertragen muss ich zwingend eine Zahl in zwei Variablen aufteilen.

Beispiel:

123.456 soll zu
a= 123
b= 456 werden

es kann aber auch
12.345 geben
a= 12
b= 345

Ich denke das wird relativ einfach machbar sein, aber ich komm grad nicht auf die Lösung, kann mir jemand helfen?
9  International / Deutsch / Re: fastSerial / UBlox GPS mit pro micro on: February 09, 2014, 05:42:12 pm
Ich habe gerade mal getestet:

GPS: Time:82251000 Fix:1 Lat:475429285 Lon:79579777 Alt:330.01 Speed:0.11 Course:0.29SATS:6
GPS: Time:82251250 Fix:1 Lat:475429278 Lon:79579793 Alt:330.02 Speed:0.13 Course:0.29SATS:6
GPS: Time:82251500 Fix:1 Lat:475429268 Lon:79579809 Alt:329.99 Speed:0.14 Course:0.29SATS:6
GPS: Time:82251750 Fix:1 Lat:475429267 Lon:79579803 Alt:329.96 Speed:0.11 Course:0.29SATS:5
Runtime MAX:196
Runtime LAST:24
Runtime MIN:12


- Die GPS Daten werden 4x pro Sekunde ausgegeben
- Die Verarbeitung des ganzes loop's braucht Minimal etwa 12uS, Maximal um 200uS)

Das sollte reichen denke ich mal.
10  International / Deutsch / Re: fastSerial / UBlox GPS mit pro micro on: February 09, 2014, 04:59:37 pm
Danke für die Ausführliche Beschreibung.
d.H. ich muss zwingend delays vermeiden (sowieso mein wunsch), die GPS Daten so oft wie möglich auslesen, da sonst wohl Daten verloren gehen und die Checksum nicht mehr stimmen wird = er beginnt von vorne und kann eben nie etwas ausgeben.
Den Restlichen Code mit millis "delayen" um ihn nur x Mal auszuführen.

Der Code scheint mir dennoch extrem schnell ausgeführt zu werden, so dass man nebenbei noch mehr als genug machen kann.
Für ein paar Simple analoge Werte lesen und interpretieren (ca 2x/sek) reicht das wohl noch 1000fach
11  International / Deutsch / Re: fastSerial / UBlox GPS mit pro micro on: February 09, 2014, 04:26:15 pm
Hi jurs

Der Code oben war nur mal als test ob er eben die Daten auch in den Puffer liest oder nur nacheinander ausliest wie bei der Klasse die ich verwende, das war eben Positiv, es muss also irgend was geben, dass den Puffer Löscht oder bereits viel zu früh ausliest.
Ich kann mich wie gesagt nicht extrem gut aus mit dem ganzen, ich bin eigentlich ein php'ler.

Ich habe nun mal die Klasse genommen und als normale Funktionen direkt im Sketch eingebaut um wirklch nur das zu haben was zum encoden gebraucht wird. Objektiv würde ich sagen der Code läuft schonmal viel schneller, gemessen habe ich es aber nicht.

Was mir nicht ganz klar ist, wird der Puffer einfach immer wieder überschrieben wenn er nicht ausgelesen wird oder was passiert da genau? Das ganze läuft nun nämlich bis zu einem delay von 10ms wirklich ohne Probleme, aber irgend wie macht mir das ganze schon etwas Sorgen, das würde ja heissen wenn mein restlicher Code dann mehr als 10ms braucht läuft nichts mehr.
Ideal wäre halt wenn man die Daten nur jedes x-te mal verarbeiten würde, für mein vorhaben brauche ich die Daten nicht mit 5hz oder mehr wie sie wohl geliefert werden.
12  International / Deutsch / Re: fastSerial / UBlox GPS mit pro micro on: February 09, 2014, 03:05:57 pm
Okay, das bringt mich jetzt schon wieder etwas weiter.
Ich brauch eigentlich ja kein Delay, der Code soll die GPS Daten und ein paar Analoge 2-3x in der Sekunde via SoftwareSerial senden, das ganze wird natürlich per millis() gelöst und nicht mit delay aber ich habe etwas Angst, dass der ganze Code dann zu Problemen führt.
Der Puffer beinhaltet lustigerweise ja eben immer nur 1Zeichen/Byte? und ist nicht voll.
Ich habe nun um das Problem zu eruieren mal folgenden Code geschrieben:
Quote
  if(Serial1.available()>2)
  {
      for(int i=0;i<Serial1.available();i++)
      {
        // print the sh*t
        if(Serial1.read() == 0xB5)
        {
          Serial.print(i) ;
          Serial.println("Syncchar!") ;
          i++ ;
          Serial.println(Serial1.read(),HEX) ;
        }
      }
      Serial.println() ;
    }
  delay(1000) ;

Das ergibt jeweils 63 Zeichen die im Puffer liegen und er kann die beiden Sync Chars 0xB5 und 0x62 auch nacheinander ausgeben, das sieht also schon mal ganz gut aus.
Aber eben in der Klasse vom alten Ardupilot wird immer nur ein Zeichen aus dem Puffer gelesen, irgend was muss dies also überschreiben.
Ich werde nun mal versuchen den Code direkt zu verwenden ohne die Klasse, ev. hilft das ja schon etwas weiter.
Ich bin dem Ziel zumindest ein stückchen näher gekommen smiley-wink

Was ich noch gefunden habe: https://code.google.com/p/minnazaosd/ Dieser Code verwendet das selbe GPS wie ich und klappt scheinbar auf einem pro mini ohne wenn und aber + das ganze OSD zeugs zusätzlich. Leider kann ich den COde da aber dank fastSerial auch wieder nicht auf meinem micro Kompilieren, so dass ich den irgend wie auch nicht als anhaltspunkt nehmen konnte, zumal ich darin nicht mal den Ort gefunden habe wo die Daten in die UBLOX Klasse abgefüllt werden....
13  International / Deutsch / Re: fastSerial / UBlox GPS mit pro micro on: February 09, 2014, 02:04:03 pm
Relativ einfach, die Daten sind von einem GPS das schon für etwas anderes gebraucht wird, weshalb ich nun mit den Daten auskommen muss, da sonst das andere Gerät nichts mehr damit anfangen kann.

Ich habe gestern mit einer alten APM Version das ganze soweit hinbekommen, dass die Daten wirklich lesbar sind aber sobald irgend wo ein Delay oder etwas dazwischen kommt lauft der Code nicht mehr, ich glaube das Problem liegt da daran, dass er irgend wie immer nur ein Byte liest und die restlichen sonst verwirft...


Edit:
Ich habe nochmals mit dem Code vom alten Ardupilot getestet.
Das Problem liegt ziemlich sicher daran, dass Serial1.available() nur 1 byte hat und er die Daten desshalb verwirft wenn ein delay oder so dazwischen kommt...
An was ligt es? Kan der micro zu wenig Daten Puffern oder ist der COde zu langsam?
Wenn ich nämlich direkt im loop mir ausgeben lasse wie viele Bytes anstehen ist es nicht eins sondern eine grössere Zahl die durchaus sinn machen würde.

Ich mus sagen: Das GPS läuft leider mit 57600B und gibt die Daten wohl 5x pro Sekunde aus, das ist sicherlich nicht gerade ideal aber das müsste doch machbar sein?
14  International / Deutsch / Re: fastSerial / UBlox GPS mit pro micro on: February 09, 2014, 01:13:35 pm
Ja die hardware Daten sind alle da, das Board ist auch in der Liste etc.
Mit dem Originalen Leonardo kann ich den Code auch nicht Kompilieren, auf einem Uno geht es aber auch smiley-sad

Edit:
Ich habe mir grade den neusten Dev Code geladen, da scheint wieder Arduino Serial verwendet zu werden, von der FastSerial lib find ich zumindest nichts mehr, aber es geht schon weiter, der ganze code ist scheinbar so extrem auf dem Mega 2560 aufgebaut, dass es praktisch unmöglich wird den Code auf einem micro zu verwenden bzw. müsste man wirklich alles durchforsten.

Gibt es denn wirklich sonst keine fertige UBX lib?
15  International / Deutsch / fastSerial / UBlox GPS mit pro micro on: February 09, 2014, 12:32:42 pm
Hallo zusammen

Ich bin am verzweifeln und hoffe auf eure Hilfe.
Ich möchte ein kleines Programm schreiben welches GPS Informationen ausliest und in einem anderen Seriellen Port ausgeben kann..
Verwndet wird ein UBlox GPS mit UBX Binärprotokoll.

Nun habe ich folgendes Problem, ich kenne mich mit Arduino noch nicht so tief aus um das Protokoll selber zu Decodieren bzw. nachzuschreiben um die Daten verwenden zu können.
Da ich den Ardupilot als Flugcontroller nutze kenne ich die da enthaltene GPS lib und wollte eigentlich auf dieser Aufbauen.
Das ganze ist extrem Simpel zu verwenden und Funktioniert auf einem Mega 2560 auch (getestet mit dem APM2.5). Nur brauch ich für meine Anwendung etwas kleines und leichtes, da der pro micro (Kompatibles Board) sowieso noch hier rumliegt wollte ich eigentlich den nehmen, dank USB in Chip wirklich ideal..
Aber ich schaff es damit nicht den Code zu Kompilieren..
Das Problem scheint an FastSerial zu liegen, der Fehler lautet "UBR0H was not declared in this scope".
Weis jemand wie ich FastSerial auf dem Pro Micro zum laufen kriege?

Eigentlich wollte ich den Code ja auf das eingebaute umschreiben, aber das ist zu viel und vor allem zu verstreut in x files.

Alernativ: Gibt es irgend eine lib die das UBX Protokoll kann?
Ich brauche mindestens:
Koordinaten
Speed
Höhe

Danke euch!
Pages: [1] 2 3 4