ATtiny45 liest ev. digital statt analog

Hi,
Mein Sketch soll 2 Analogwerte einlesen,und entsprechend ihrem Zustand die Ausgangsports für einen Stellmotor setzen.
Das Programm läuft, aber reagiert nicht auf analoge Spannungswerte, sondern nur, wenn ich an die Analogpins digitale Zustände anlege (0 oder 5V)
Hat jemand ne Idee?
Gruß
Helle

`
int wert1 = 0;
int wert2 = 0;
byte T = 1;

void setup()
{
pinMode(0, OUTPUT); // Out0
pinMode(1, OUTPUT); // Out1
pinMode(2, OUTPUT); // Enable
pinMode(3, INPUT);
pinMode(4, INPUT);
digitalWrite(2, HIGH); // Enable ist on
}
void loop()
{

wert1 = analogRead(PB3);
wert2 = analogRead(PB4);

if (wert1 > (wert2 + 30 ))
{
if ( T < 20) T = T + 1;
digitalWrite(2, HIGH); // Enable+
digitalWrite(0, HIGH); // BridgeA+ an Plus
digitalWrite(1, LOW); // BridgeB- an Gnd Motor läuft vorwärts
delay (T);
digitalWrite(2, LOW); // Enable- Motor Leerlauf
delay (50 - T);
}

if ( wert1 < wert2 )
{
if ( T < 20) T = T + 1;
digitalWrite(2, HIGH); // Enable+
digitalWrite(0, LOW); // BridgeA- an Gnd
digitalWrite(1, HIGH); // BridgeB+ an Plus Motor läuft zurück
delay (T);
digitalWrite(2, LOW); // Enable- Motor Leerlauf
delay (50 - T);
}

if ( (wert1 > wert2) && ( wert1 < ( wert2 + 30)))
{
T = 1;
digitalWrite(2, HIGH); // Enable+
digitalWrite(0, LOW); // BridgeA- an Gnd
digitalWrite(1, LOW); // BridgeB- an Gnd Motor Stop
delay (50);
}

}`

Du vermischt da was.
PinOut und Zuweisungen hat unser @agmue mal vor längerer Zeit rausgesucht:

Hier legst den als digitalen Input fest:

Und hier beisst es sich auf dem zweiten Kanal.

Wieso benutzt du nicht die arduinoübliche Schreibweise der Pins?

wert1 = analogRead(A0);
wert2 = analogRead(A1);

Grüße Uwe

@ Uwe:
Im Attiny45 ist das PortB und
Arduino akzeptiert für den ATtiny nur "3" bzw "4" oder PB3 bzwPB4

@my_xy_projekt :
Hab die Pinmodes mal raus genommen.
Ändert nix.

Gruß
Helle

Und das wiederum ist abhängig von deiner installierten Core-Version.
Mit Ax solltest du einfach mal testen. Ich bin auch mal darüber gestolpert. Avor die Pin-Zahl und es hat funktioniert.

Und analoge Pins brauchst du nicht als Input zu definieren, das sagt schon "analogRead" aus.

Abhängig von dem installierten Core und der Einstellung unter Werkzeuge, kann die Nummerierung der Pins im Uhrzeigersinn (Clockwise) bzw. gegen den Uhrzeigersinn (Counterclockwise) laufen.

Evtl. ist bei dir "Im Uhrzeiger Sinn" (Clockwise) eingestellt und somit sind pin 3 = PB1 und pin 4 = PB0. Damit würdest du auf die Digitalen Pins zugreifen.

Wenn du den Core von Spence Konde nutzt:

ADC Support
‎Alle unterstützten Teile mit Ausnahme der x313-Familie verfügen über einen Analog-Digital-Wandler auf dem Chip. ‎‎Single-Ended-ADC-Eingänge können mit der ADC-Kanalnummer oder der Ax-Konstante gelesen werden (sie können NICHT mit der digitalen Pin-Nummer gelesen werden).‎‎ Zusätzlich zu den Single-Ended-Eingangskanälen, die in den Pinbelegungsdiagrammen markiert sind, unterstützen viele auch differenzielle ADC-Eingangskanäle. Um diese zu verwenden, rufen Sie einfach analogRead() mit der entsprechenden ADC-Kanalnummer auf. Um die ADC-Kanalnummer zu erhalten, lesen Sie das Datenblatt - es ist im Abschnitt Registerbeschreibung des Kapitels über den ADC unter dem ADMUX-Register aufgeführt.‎

servo3:18:22: error: 'ADC2' was not declared in this scope

wert1 = analogRead(ADC2);

Das ist die Antwort, auch bei "A2"

Gruß
Helle

Dann wäre doch zu klären, welche Core-Version du verwendest.
Wie schon mehrfach geschrieben, ist die Funktion abhängig von der eingesetzten Version.

Meinst du das:

ATTinycore by Spence Konde Vers. 1.5.2 ?

Gruß
Helle

K.A.
Ich meine das Core, was du für den ATtiny bei dir installiert hast.
Wenn das obige Version ist, sollte es auch so wie zuvor beschrieben, funktionieren.

Was hast du denn bei Datei/Voreinstellung Zusätzliche Boardverwalter-URLs für einen Link eingetragen?

Ja, das Obige ist in meinem Boardverwalter im Arduino als installiert aufgeführt.
Mit dem geschilderten Ergebnis.

Gruß
Helle

An welchen physikalischen Pins hast du deine Analogen Eingänge? (4 = GND, 8 = VCC)

@Plumps:
Da steht:
http://drazzy.com/package_drazzy.com_index.json

Eingänge Pin 2u3
Daß die gelesen werden, ergibt sich aus der Tatsache, daß der chip ordentlich reagiert, wenn ich dort digitale Spannungen anlege.
Nur wandelt er sie nicht um bei analog.

Gruß
Helle

Alos grad eben mit der Version 1.5.2 getestet:

  wert1 = analogRead(A2);
  wert2 = analogRead(A3);

Beides, auch mit A0 und A1 gibt keine Fehler aus.

Das gleiche habe ich bei mir auch installiert.

Pin2 = A3
Pin3 = A2

Ich habe mal deinen Sketch aus dem Startpost genommen und nur bei wert1 durch A2 und bei wert2 durch A3 ersetzt.

int wert1 = 0;
int wert2 = 0;
byte T = 1;

void setup()
{
pinMode(0, OUTPUT); // Out0
pinMode(1, OUTPUT); // Out1
pinMode(2, OUTPUT); // Enable
pinMode(3, INPUT);
pinMode(4, INPUT);
digitalWrite(2, HIGH); // Enable ist on
}
void loop()
{

wert1 = analogRead(A2);
wert2 = analogRead(A3);

if (wert1 > (wert2 + 30 ))
{
if ( T < 20) T = T + 1;
digitalWrite(2, HIGH); // Enable+
digitalWrite(0, HIGH); // BridgeA+ an Plus
digitalWrite(1, LOW); // BridgeB- an Gnd Motor läuft vorwärts
delay (T);
digitalWrite(2, LOW); // Enable- Motor Leerlauf
delay (50 - T);
}

if ( wert1 < wert2 )
{
if ( T < 20) T = T + 1;
digitalWrite(2, HIGH); // Enable+
digitalWrite(0, LOW); // BridgeA- an Gnd
digitalWrite(1, HIGH); // BridgeB+ an Plus Motor läuft zurück
delay (T);
digitalWrite(2, LOW); // Enable- Motor Leerlauf
delay (50 - T);
}

if ( (wert1 > wert2) && ( wert1 < ( wert2 + 30)))
{
T = 1;
digitalWrite(2, HIGH); // Enable+
digitalWrite(0, LOW); // BridgeA- an Gnd
digitalWrite(1, LOW); // BridgeB- an Gnd Motor Stop
delay (50);
}

}

Kompiliert bei mir ohne Fehlermeldung:

Der Sketch verwendet 970 Bytes (23%) des Programmspeicherplatzes. Das Maximum sind 4096 Bytes.
Globale Variablen verwenden 15 Bytes (5%) des dynamischen Speichers, 241 Bytes für lokale Variablen verbleiben. Das Maximum sind 256 Bytes.

Welche Einstellung hast du bei Werkzeuge? Bei mir sieht es so aus:

Huch, ich dachte er kompiliert gar nicht?

Bin gerade verwirrt.

Geht mir auch so.
Da sollte der TO erst mal bei sich aufräumen. Er bringt die analoge und digitale Pinbezeichnung ständig durcheinander.

@Plumps
siehe #1

@HotSystems
ich benutze als Programmer PonyProg2000
Zu deiner Bemerkung:
ich hab eben alle denkbaren Pin-Bezeichnungen durchprobiert, keine funktioniert,
Wenn dich das verwirrt....sorry.
Gruß
Helle

Nun ja. Kompiliert der Code bei dir nun mit der Verwendung von A2 bzw. A3?