Go Down

Topic: Projektvorstellung: Analoguhr mit Amperemetern (Read 5 times) previous topic - next topic

sth77

Hersteller und Serie hast du schon richtig erkannt, es ist aber das UTD 2042C mit 40 MHz. Obwohl ich ja auch nur Laie in Sachen Oszilloskopnutzung bin und darüber nur theoretische Kenntnisse hatte, bin ich doch erstaunlich gut mit dem Gerät zurechtgekommen. Die Bedienelemente sind logisch angeordnet, Automatikfunktionen sind einsteigerfreundlich und das mitgelieferte Zubehör ist auch qualitativ hochwertig (ausreichende Kabellängen der Tastköpfe, flexible Kabel).
Es gibt allerdings auch Punkte, die mir nicht so recht zusagen, diese waren mir aber durch einen Freund mit dem gleichen Oszi schon bekannt:
- die Darstellung ist grobpixelig, kein Vergleich zu den Displays heutiger Mobiltelefon oder Monitore
- permanentes Lüfterrauschen, dabei merkt man an der Austrittsöffnung kaum ein Windchen
- Bedienung über den PC nur über die mitgelieferte Software ohne Anbindungsmöglichkeit in eigene Softwareprojekte (für mich weniger wichtig)
Ich bin trotzdem mit dem Preis-Leistungsverhältnis zufrieden, für die gelegentliche Nutzung reicht mir das absolut aus. Als Alternative käme dann wohl noch die 50 MHz-Version in Frage (UTD 2052 CEL), die für 80 Euro mehr ein besser aufgelöstes, größeres Display mitbringt, geringere Anstiegszeiten aufweist und auch sonst in einigen Punkten noch bessere Leistungswerte hat.
Wie gesagt, das ist alles nur eine Frage des Geldes. Wer mehr auf den Tisch legt, bekommt auch einen entsprechenden Gegenwert, auch wenn dann das P/L-Verhältnis schlechter wird.

BTW: Auf www.mikrocontroller.net gibt es einen schönen Artikel über den Kauf eines Oszilloskopes: welche Empfehlungen es in Foren gibt (neu, gebraucht, analog, digital), welche Sorten Antworten es gibt (z.B. von Angebern, von Leuten, die sich den selbst gezahlten Kaufpreis über den (vermutlich nie genutzten) Funktionsumfang schönreden müssen) usw..
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

sth77

#46
Mar 12, 2012, 10:25 pm Last Edit: Mar 12, 2012, 10:38 pm by sth77 Reason: 1
So, ich habe die Realtime-Clock eingebunden, das DCF-Modul jedoch noch nicht. Hier ein bisschen Code:

Code: [Select]
#include "Wire.h"
#define DS1307_ADDRESS 0x68

byte pinMinute = 9;
byte pinStunde = 10;

byte zero = 0x00;
byte sekunde;
byte minute;
byte stunde;
byte am;
byte pm;

void setup(){
 Wire.begin();
 Serial.begin(9600);
 pinMode (pinMinute, OUTPUT);
 pinMode (pinStunde, OUTPUT);
 // setRTCtime(21,57,15);
}

void loop(){
 getRTCtime();
 // printRTCtime(stunde, minute, sekunde);
 showTime(stunde, minute, sekunde);
 delay(500);
}


byte decToBcd(byte val){
 return ((val/10*16)+(val%10));
}

byte bcdToDec(byte val){
 return ((val/16*10)+(val%16));
}

void getRTCtime(){
 Wire.beginTransmission(DS1307_ADDRESS);
 Wire.write(zero);
 Wire.endTransmission();
 Wire.requestFrom(DS1307_ADDRESS, 7);
 sekunde = bcdToDec(Wire.read());
 minute = bcdToDec(Wire.read());
 stunde = bcdToDec(Wire.read() & 0b111111);
 int weekDay = bcdToDec(Wire.read());
 int monthDay = bcdToDec(Wire.read());
 int month = bcdToDec(Wire.read());
 int year = bcdToDec(Wire.read());
 if (stunde==0||stunde==12){
   am=0;
   pm=0;
 }
 if (stunde>1&&stunde<=12){
   am=1;
   pm=0;
 }
 if (stunde>12&&stunde<=23){
   am=0;
   pm=1;
 }
}

void setRTCtime(byte h, byte m, byte s){
 byte weekDay =     1; //1-7
 byte monthDay =    1; //1-31
 byte month =       1; //1-12
 byte year  =       0; //0-99

 Wire.beginTransmission(DS1307_ADDRESS);
 Wire.write(zero);
 Wire.write(decToBcd(s));
 Wire.write(decToBcd(m));
 Wire.write(decToBcd(h));
 Wire.write(decToBcd(weekDay));
 Wire.write(decToBcd(monthDay));
 Wire.write(decToBcd(month));
 Wire.write(decToBcd(year));
 Wire.write(zero);
 Wire.endTransmission();
}

void printRTCtime(byte h, byte m, byte s){
 Serial.print(h);
 Serial.print(":");
 Serial.print(m);
 Serial.print(":");
 Serial.println(s);
}

void showTime(byte h, byte m, byte s){
 if (h>12) h=h-12;
 if (h==12) analogWrite (pinStunde, h*20);
   else analogWrite (pinStunde,h*20+m/4); // rechnerisch eigentlich 3
 analogWrite(pinMinute, m*4);  
}


Und wer es sich anhand des Codes nicht vorstellen kann, bekommt noch ein Video dazu:

http://www.youtube.com/watch?v=VYqOkgLESW8

Jetzt muss noch das Funkuhrmodul eingebaut werden, es fehlt die Hintergrundbeleuchtung, die manuelle Einstellung der Zeit (man will ja nicht jedes Mal die Zeit per Programmierung setzen ;)) und natürlich ein schönes Gehäuse.
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

dlca

Hi,
wäre es möglich anstatt einem Amperemeter auch einfach ein Voltmeter mit einer Skala von 0-5v zu verwenden?
Dann einfach einen Widerstand an einen Pwm-Ausgang und das Voltmeter parallel angeschlossen?

Ps: ich hoffe es ist ok, dass ich den alten Thread ausgrabe.

greetings
Nils

uwefed

Drehspulmeßgeräte messen immer den Strom. Um aus einen Drehspulampermeter ein Voltmeter zu machen mußt Du den Paralellwiderstand entfernen und einen Widertand in Reihe schalten sodaß der notwendige Strom fließt. Wir reden da indikativ von 100µA und 100mV die das Drehspuhlmeßgerät ohne Widerstände hat.
grüße Uwe

dlca

nja ich will ja kein amperemeter zum voltmeter machen, sondern ein fertiges Voltmeter verwenden.
Dieses hier: http://www.ebay.de/itm/221096992295?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649

damit müsste doch meine Idee, aus dem vorangeganen post funktionieren?

Go Up