Hallo Gemeinde,
ich bin neu hier und benötige eure Hilfe! Ich studiere Erneuerbare
Energien und habe ein kleines Projekt in der Speichertechnik angefangen.
Leider lassen sich die Messungen hierbei nur schlecht manuell
anfertigen. Also automatisieren!
Mein Projekt besteht darin, dass ich an verschiedenen Stellen Spannung
und Strom messen und zwei Mosfets schalten möchte. Hierfür nutze ich ein
Arduino Nano v.3 und 4 ACS712, die an den Eingängen A0, A2, A4 und A6
liegen. Des Weiteren habe ich 4 Spannungsteiler angefertigt, die an den
Eingängen A1, A3, A5 und A7 liegen. Die Mosfets werden durch die
digitalen Eingänge 2 und 4 geschaltet.
Die Verschaltung ist somit komplett.
Jetzt zur Programmierung, die mir etwas Kopfzerbrechen bereitet hat. Ich
habe dafür einige Beispiele aus dem Netz gefunden. Leider funktionieren
weder die Bsp. noch meine eigene Programmierung. Ich bekomme nur
komische Werte im Seriellen Monitor sowie im Plot.
Bsp. einer sich wiederholenden Anzeige aus dem Monitor:
"$GPGSV,1,1,01,17,,,,,,,,,,,,,,,*7E
$GPGLL,,,,,000103.000,V,N*78
$GPGGA,,,,,,0,0,,,M,,,,*1B
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGST,000103.000,,,,0,,,*7B
$GPRMC,000103.000,V,,,,,,,,,,N*4F
"
Meine Programmierung sieht wie folgt aus:
Im Grunde soll der erste Mosfet bei Start geschaltet werden. Dieser ist
solange aktiv, bis an der StationPulserAkku ein gewisser Strom
unterschritten wird. Nach einer kurzen Pause schaltet dann der zweite
Mosfet bis die Spannung an StationPulserAkku bzw. StationAkkuWandler auf
11V gesunken ist. Dies soll sich dann wiederholen.
Ich hoffe ihr könnt mir helfen......
Anscheinend ist der einzige serielle Hardware Port deines Nano schon
belegt (und das sieht aus wie ein GPS Empfänger ohne Empfang). Du musst
also dich entweder mit der 'SoftSerial' Library beschäftigen um auf
einem beliebigen anderen Pin seriell zu kommunizieren, oder die Hardware
UART freiräumen, um dort deine Daten auszugeben.
Mutige Seelen könnten die UART auch belegen, indem sie RXD am GPS
Receiver lassen und nur TXD Richtung PC schicken. Allerdings bist du
dann auf die Baudrate des GPS Receivers festgelegt und kannst auch vom
PC nix in Richtung Nano schicken. Ausserdem kann man dann auch den GPS
Receiver nicht umkonfigurieren, wenn man das mal bräuchte.
Hi,
zum Port ist ja schon alles geschrieben.
Aber:
Erstmal fehlen bei den ADC der pinMode Input. Sollte zwar nicht das
Problem sein aber der vollständigkeit schreibe ich das immer hin.
Dein Problem scheint auch hier zu liegen:
messA1 = (float)12 / 1023 * sensorValueA1;
Richtig müsste es so sein:
messA1 = 12.0 / 1023.0 * (float)sensorValueA1;
Habs jetzt nicht getestet.
Gib doch mal die SensorValueX und messAX mit Seriell aus. Dann siehst Du
den Fehler schneller.
Gruß
Matze
Schau mal im Gerätemanager, welchen Port dein Board überhaupt verwendet.
(WIN+Pause -> Gerätemanager)
Sollte beim An-/Ab- stecken einer auftauchen/verschwinden.
Eventuell fehlt dir auch der Treiber für dein Board.
Sollte dann mit einem gelben Ausrufezeichen angezeigt werden.
Bei meinem Nano-clone war ein Widerstand auf der Unterseite verrutscht.
Vielleicht auch da einmal schauen.
PsykoMaN schrieb:> Bsp. einer sich wiederholenden Anzeige aus dem Monitor:
Hast Du das Programm fehlerfrei compilieren und (fehlerfrei) auf den
Nano flashen können? Ich würde mal auf ein anderes Programm tippen, was
da noch drauf ist ...
M. P. schrieb:> Dein Problem scheint auch hier zu liegen:> messA1 = (float)12 / 1023 * sensorValueA1;>> Richtig müsste es so sein:> messA1 = 12.0 / 1023.0 * (float)sensorValueA1;
das ist beides gleich richtig (oder falsch)
es wird jedenfalls beide Male mit float gerechnet
Hi,
entschuldigt die Wartezeit.
Ich habe dieses Problem nun gelöst. Der Serial-to-USB Converter ist
defekt. Mein Rechner hat dann intern, während einer Abfrage, auf die
enthaltene GPS-Maus zugegriffen. Danke für den Hinweis @Matthias S..
Jetzt Spuckt es auch ordentliche Werte aus, auch wenn meine Mosfets
immernoch nicht schalten. Aber das, so denke ich, finde ich auch noch
raus.