Hi,
Wollte einen Attiny 85 Programmiern um das Massenträgheitsmoment bei
eines Lüfters bei einer Modell-Lokomotive zu Simulieren. Der Attiny soll
sobald es vom in der Lokomotive selbst eingebauten Signaldecoder ein
HIGH signal bekommt die Lüfter andrehen lassen.
Zusätzlich sollen die lüfter Proportional zur Fahrgeschwindigkeit
schneller werden.
dafür den analogRead() und analogWrite().
Jetzt das Problem der Attiny erkennt seine AnalogenPins scheinbar nicht
als solche.
und auch der digitale eingang reagiert praktisch garnicht auf high
Signale.
habe auch einfachere Programme probiert, wie beispielsweise led an wenn
schalter gedrückt. Attiny reagiert garnicht.
http://hlt.media.mit.edu/wp-content/uploads/2011/06/attiny45_85pinout.png
hier mal so ne schematik.
Die Analogen eigänge kann ich doch auch als digitale Festlegen oder.
4 ist beispielsweise ein analoger Eingang.
aber auf befehle wie
reagiert der gute garnicht auch wenn ich statt 4 A2 schribe geht einfach
garnichts.
was ist da falsch.
Hier mal das gesammte Programm.
1 | int sensorPin = 4;
|
2 | int motorPin = 1;
|
3 | int val = 0;
|
4 | int funktion = 2;
|
5 | int var = 0;
|
6 | int abschalten = 0;
|
7 |
|
8 | void setup() {
|
9 |
|
10 |
|
11 | pinMode(funktion, INPUT);
|
12 |
|
13 | }
|
14 |
|
15 | void loop() {
|
16 |
|
17 |
|
18 | val = analogRead(sensorPin);
|
19 | val = map(val, 0, 1023, 0, 50);
|
20 | if (funktion == HIGH)
|
21 | {
|
22 | var=0;
|
23 | while(var < 50){
|
24 | analogWrite(motorPin, var);
|
25 | var++;
|
26 | delay(100);
|
27 | }
|
28 | analogWrite(motorPin, var + val);
|
29 | abschalten = var + val;
|
30 |
|
31 | }
|
32 |
|
33 |
|
34 | if (funktion == LOW)
|
35 | {
|
36 |
|
37 | while(abschalten>= 0){
|
38 | analogWrite(motorPin, abschalten);
|
39 | abschalten = abschalten - 1;
|
40 | delay(100);
|
41 | }
|
42 |
|
43 |
|
44 | }
|
45 |
|
46 | }
|
Danke schonmal
Gruß Macman2010