Pages: 1 2 3 [4]   Go Down
Author Topic: Projektvorstellung: Analoguhr mit Amperemetern  (Read 4570 times)
0 Members and 1 Guest are viewing this topic.
Germany
Offline Offline
Edison Member
*
Karma: 44
Posts: 2261
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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..
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Germany
Offline Offline
Edison Member
*
Karma: 44
Posts: 2261
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

So, ich habe die Realtime-Clock eingebunden, das DCF-Modul jedoch noch nicht. Hier ein bisschen Code:

Code:
#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:



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 smiley-wink) und natürlich ein schönes Gehäuse.
« Last Edit: March 12, 2012, 04:38:59 pm by sth77 » Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Offline Offline
Full Member
***
Karma: 0
Posts: 117
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 236
Posts: 20273
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 117
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

Pages: 1 2 3 [4]   Go Up
Jump to: