Es ist lange her, dass ich mit Schaltkreisen gespielt habe, ich würde mich über eine Plausibilitätsprüfung des folgenden Designs freuen; Ich versuche, die Anzahl der Stunden seit dem letzten Drücken der Reset-Taste zu zählen. Im Idealfall würde es lange halten, wenn es nur mit Batterien betrieben wird, aber wenn ich es jemals zum Laufen bekomme, bin ich glücklich!
(Schaltplan unten)
Ich habe meine astabilen NE555-Werte berechnet, indem ich die Gleichung auf Wikipedia für "gemeinsame Werte" von Widerständen und Kondensatoren , die 3600 Sekunden am nächsten lagen , brutal erzwang (ich habe den Rubincode unten für Interessierte hinzugefügt). Erscheinen sie vernünftig?
Ich plane die Verwendung der folgenden Komponenten - gibt es noch etwas, das ich berücksichtigen sollte?
(Mir wurde klar, dass die NAND-Logik möglicherweise nicht klar ist - es hat eine Weile gedauert, bis ich herausgefunden habe, wie man eine UND + ODER-Kombination mit NANDs implementiert! - Also habe ich sie unter dem Schaltplan herausgezogen.)
Danke!
Ruby-Code zum Brute-Forcing der nächsten NE555-Komponentenwerte:
require "pp"
capacitor = [1, 1.5, 2.2, 3.3, 4.7, 6.8]
resistor = [10, 11, 12, 13, 15, 16, 18, 20, 22, 24, 27, 30, 33, 36, 39, 43, 47, 51, 56, 62, 68, 75, 82, 91]
powers = [0.001, 0.1, 1, 10, 100, 1_000, 10_000, 100_000, 1_000_000]
target = 3600
tolerance = 1
best = []
ln2 = Math.log(2)
powers.each do |c_p|
capacitor.each do |c_v|
c = c_v * c_p
powers.each do |r1_p|
resistor.each do |r1_v|
r1 = r1_v * r1_p
powers.each do |r2_p|
resistor.each do |r2_v|
r2 = r2_v * r2_p
value = ln2 * c * (r1 + 2*r2)
proximity = (target - value).abs
if proximity <= tolerance
best.push(
proximity: proximity,
value: value,
c: c,
r1: r1,
r2: r2
)
end
end
end
end
end
end
end
best.sort! do |a, b|
a[:proximity] <=> b[:proximity]
end
pp best.take(5)
Ein paar Kommentare zu Beginn: -
Barry
Dan Laks
David Tweed
JP.
Andi aka
Peter Bennett
EM-Felder
Andi aka