ATTINY13

Motrosoff
Offline
Зарегистрирован: 24.12.2015

Это код, который измеряет напряжение подоваемое для запитки самого ATtiny13, напряжение подаётся на Аналоговый вход (А1). При падении напряжения ниже чем 2.8В начинает мигать диод (10 раз по 250Мил.сек и 250Мил.сек пауза)--это вот такая задумка !!Вопрос! Когда аналоговый вход ни чего не измеряет, то мигание происходит, а когда кидаю перемычку на плюс то ничего не происходит!!!! Что может быть, может код кривой??????

const byte minVoltage = 572;// примерно 2,8В на десятибитном АЦП
void setup()
{
  pinMode(0, OUTPUT);// пин0 как выход
}

void loop()
{
  int voltage = analogRead(A1);
  if(voltage<minVoltage) blink(); //если напряжение меньше 2.8 вольт то мигаем 10 раз
}
void blink()
{
    for(int i=0;i<10;i++)
    {
        digitalWrite(0, HIGH);// пин 0 вкл
        delay(250);
        digitalWrite(0, LOW);// пин 0 выкл
        delay(250);
    }
}

 

Coolerr
Offline
Зарегистрирован: 30.06.2014

А относительно чего он измеряет? Опорное напряжение какое? Судя по коду опорное есть напряжение питания. А мигает когда нога висит в воздухе потому что в этом состоянии аналоговый вход принимает любые случайные значения.

 

 

 

toc
Offline
Зарегистрирован: 09.02.2013

>> когда кидаю перемычку на плюс то ничего не происходит!!!!

напряжение больше 2.8 в.

Motrosoff
Offline
Зарегистрирован: 24.12.2015

Напряжение от аккума литиевого, 3.8в. Как и всем аккумам свойственно разряжаться, вот и хочу сделать так скажем оповеститель напряжения, сли аккум разрядился до 2.8 то начинает мигать!!! Вот как то так, вот только когда идёт замер с А1 то хоть ниже 2.8, хоть какое в общем напряжение, отказывается мигать. А без подачи того же напряжения мигает, каким собственно и запитывается тинька!! Что за...не въеду

fixedip
Offline
Зарегистрирован: 16.03.2015

Попробуй подтянуть А1 на минус через резистор 10К

Motrosoff
Offline
Зарегистрирован: 24.12.2015

Ок! Попробую! Отпишусь тогда! Хотя мне кажется что это без смысленно-но попробую!

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Motrosoff, бесмысленно оставлять неподключенную ногу, а ещё бесмысленно измерять своё напряжение питания этим способом. analogRead всегда будет возвращать 1023. Впрочем если почитаете про internal reference, научитесь как его использовать, сделаете делитель напряжения, то может и получиться :)

Motrosoff
Offline
Зарегистрирован: 24.12.2015

Так в чём проблема то измерить своё же напряжение на аналоговом входе и выполнить команду??? Не пойму....эта процидура очень хорошо работает на Atmega328P...тут то что ???????

Motrosoff
Offline
Зарегистрирован: 24.12.2015
unsigned long time4 = 0;
const byte ledPin = 12;
const byte maxVoltage =5;// максимально возможное измеряемое напряжение

void setup()
{
  pinMode(ledPin, OUTPUT);
  Serial.begin(38400);
}

void loop()
{
if(millis()>=(time4+1000)) // если прошло 5 секунд то проверяем напряжение
{
  float voltage = map(analogRead(A4),0,1060,0,maxVoltage*100)/100.0;
  Serial.print("Voltage:");
  Serial.println(voltage);
  time4=millis();// засекаем время
  if(voltage<2.8) blink();
   }
}

void blink()
{
for(int i=0;i<10;i++)
{
  digitalWrite(ledPin, HIGH);
  delay(250);
  digitalWrite(ledPin, LOW);
  delay(250);}
}

вот этот привосходно работате на Atmega328 (Arduino UNO).....может что то не так переделал для АТтиньки?????

Motrosoff
Offline
Зарегистрирован: 24.12.2015

Я бы этот код с удовольствием в АТТини воткнул но не влазеет...может его как то можно сжать??????

growler
Offline
Зарегистрирован: 12.07.2016

Motrosoff, _внимательно_ прочтите то, что вам написали в посте #6. Что-то мне подсказывает, что dimax сюда повторно писать не будет.

ВН
Offline
Зарегистрирован: 25.02.2016

Motrosoff, разберйтесь с опорным источником ацп

fixedip
Offline
Зарегистрирован: 16.03.2015

Посмотри здесь
https://youtu.be/eKz8a6yCfaU

Motrosoff
Offline
Зарегистрирован: 24.12.2015

Но ардуина уно своё же измеряет..а тиньлка что-не сможет что ли??? Мне оооооооочень нужна эта тинька((( Ну что я зря накупил их((