timer met ATtiny85 probleem

Arduino specifieke Software
Berichten: 8
Geregistreerd: 27 Dec 2014, 21:24

timer met ATtiny85 probleem

Berichtdoor wiltitech » 27 Dec 2014, 21:48

Momenteel ben ik bezig met maken en programmeren van een timer op basis met een ATtiny85.
Om het programma goed te kunnen testen heb ik gebruik gemaakt van een Arduino Micro. De opzet van het programma is dat het een soort variabele afvalvertraging.
D.m.v een potmeter is de afvaltijd in te stellen. Met de Micro werkte dit goed. Daarna het programma over gezet naar een ATtiny85 ogenschijnlijk gaat alles goed.
Wanneer ik nu het ingangscontact sluit wordt de uitgang actief en blijft actief.
Als ik nu de potmeter geheel naar gnd draai wordt de uitgang alleen actief op het moment dat het contact gesloten wordt. Draai ik nu de potmeter naar de 5V dan wordt de uitgang actief en blijft actief.
Wat kan hier de oorzaak van zijn, volgens mij moet ik met de potmeter een waarde kunnen maken van 0 tot 1024 zodat ik hiermee de tijd kan bepalen.
Dit werkte wel bij de Micro.

Hierbij het gebruikte programma.
Programma voor afvalvertraging
*/

int (potm) = 2; // potmeter voor tijdsinstelling
int (comp) = 3; // aansturing vanaf compressor Pin 3
int (relais) = 1; // aansturing relais ventilator Pin 1
int X; // uitlezen waarde potmeter
int C; // uitlezen kontakt compressor
int Z; // counter voor timer

void setup ()
{
pinMode (potm,INPUT);
pinMode (relais,OUTPUT);
pinMode (comp,INPUT);

Z = 0;

}

void loop()
{
C = digitalRead(3);
if (C== LOW)
{
digitalWrite( relais,HIGH);
Z = 1;
}
else
{
digitalWrite( relais,LOW);
Z = 0;
}
X = analogRead (potm);
// X = potm;
// X = potm * 5; // waarde 0 tot 1024 * 5 tijd 0 tot 10 minuten

if (Z == 1 )
{
for (int T = 0; T < X; T ++)
{
digitalWrite (relais,HIGH);
delay(100);
C = digitalRead(4);
if (C == LOW)
{
T = 0;
}
}
digitalWrite(relais,LOW);
Z = 0;
}
Z = 0;

}
// ***************************************** EINDE PROGRAMMA *****************************

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: timer met ATtiny85 probleem

Berichtdoor nicoverduin » 28 Dec 2014, 13:01

Als je een analoge pin wil lezen als analoog zou ik A0,A1 etc gebruiken. Nu probeer je een digitale pin analoog te lezen. Let je ook op de juiste mapping van de pinnen op de Attiny?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 40
Geregistreerd: 13 Mei 2014, 02:53
Woonplaats: Amsterdam

Re: timer met ATtiny85 probleem

Berichtdoor Resu » 28 Dec 2014, 17:28

wiltitech schreef: C = digitalRead(4);
if (C == LOW)
{
T = 0;
}


En is dit een typo? Ik zie pin 4 verder nergens voor komen.
We do what we must because we can.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: timer met ATtiny85 probleem

Berichtdoor nicoverduin » 28 Dec 2014, 17:32

Standaard is een pin bij de Arduino op input. Gaat dus goed.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 8
Geregistreerd: 27 Dec 2014, 21:24

Re: timer met ATtiny85 probleem

Berichtdoor wiltitech » 28 Dec 2014, 22:34

Het klopt
C = digitalRead(4); had digitalRead(3); moeten zijn.

De timer werkt nu naar behoren.
Bedankt voor jullie reactie.

leon

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: timer met ATtiny85 probleem

Berichtdoor nicoverduin » 29 Dec 2014, 00:30

Wel vreemd dat het programma wel werkte op de micro als die digitalRead(4) ook verkeerd was?????
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 8
Geregistreerd: 27 Dec 2014, 21:24

Re: timer met ATtiny85 probleem

Berichtdoor wiltitech » 29 Dec 2014, 17:44

Met de micro werkte het wel goed daar de potmeter wel op een analoge ingang zat.
Waarschijnlijk is het fout gegaan bij het omnummeren terwijl de potmeter wel op de goede aansluiting zat.
Alles werkt nu de tijd is goed instelbaar.
In ieder geval bedankt voor het meedenken.

groeten Leon

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: timer met ATtiny85 probleem

Berichtdoor nicoverduin » 29 Dec 2014, 18:56

Overigens snap ik niet helemaal wat je hiermee wilde?
cpp code
int (potm) = 2; // potmeter voor tijdsinstelling
int (comp) = 3; // aansturing vanaf compressor Pin 3
int (relais) = 1; // aansturing relais ventilator Pin 1


Zelf werk altijd met define
dus:
cpp code
#define POTM  2    // potmeter voor tijdsinstelling
#define COMP 3 // aansturing vanaf compressor Pin 3
#define RELAIS 1 // aansturing relais ventilator Pin 1


En dan in je programma refereren naar POTM, COMP en RELAIS etc. Dan hoef je alleen maar in het begin van je programma de pinnen te veranderen als je wisselt van cpu.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: timer met ATtiny85 probleem

Berichtdoor shooter » 29 Dec 2014, 21:20

er is wel een verschil hoor:
met int kun je de waarde in het programma tijdens het runnen veranderen, en dat gaat met define dus niet.

alle beginners doen het met INT, tot ze de voordelen van define zien.
paul deelen
shooter@home.nl

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: iduwtaikeqek en 91 gasten