Подскажите с кнопками

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

TynuK пишет:

отвас мне мастер-класс не нужен.

Тю! А я так старался! За самым ценным конденсатором в СВХ бегал :(

TynuK пишет:

если сам делаешь то можнои без схемы если, не трудно запомнить 

Забавный Вы человек. Сколько Вам лет? 10? 12?

 

Logik
Offline
Зарегистрирован: 05.08.2014

ЕвгенийП пишет:

TynuK пишет:

читал где то, чт оможно емкость конденсаторов мерить ардуиной

А то! Ещё как можно! Могу дать бесплатный мастер класс.

Смотрите на картинку:

Длина равна 1 Мега
Радиус = 1 Нано.

Значит, любой, кто учился в школе, сразу скажет. что ёмкость равна 


2πNanoMega.

Зачёт!!!! Спасибо поржал ))))

Ну а реалльнно - канешна можна. Емкость пропорциональна времени заряда постоянным током. Элементарщина в общем.

Logik
Offline
Зарегистрирован: 05.08.2014

Кстати с ардуиной какраз иногда обхожусь без схемы. Просто табличка соединений в экселе.  Схемотехника то простая. Но вобще именно новичкам схема нужней.

Но фиксировать гдето нужно, помнить месяц другой еще можна, потом забудется.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Logik пишет:
Емкость пропорциональна времени заряда постоянным током. Элементарщина в общем.

Способность конденсатора накапливать заряд характеризуется электроемкостью, которая равна отношению заряда конденсатора к напряжению:C=q/U

http://www.yaklass.ru/materiali?mode=lsntheme&themeid=129

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ЕвгенийП пишет:

TynuK пишет:

читал где то, чт оможно емкость конденсаторов мерить ардуиной

А то! Ещё как можно! Могу дать бесплатный мастер класс.

Смотрите на картинку:

Длина равна 1 Мега
Радиус = 1 Нано.

Значит, любой, кто учился в школе, сразу скажет. что ёмкость равна 


2πNanoMega.

Двойку не там поместил :))).

Logik
Offline
Зарегистрирован: 05.08.2014

qwone пишет:

Logik пишет:
Емкость пропорциональна времени заряда постоянным током. Элементарщина в общем.

Способность конденсатора накапливать заряд характеризуется электроемкостью, которая равна отношению заряда конденсатора к напряжению:C=q/U

http://www.yaklass.ru/materiali?mode=lsntheme&themeid=129

Ага. вспоминаем что q=ItОткуда

 

C=q/U=(I/U)t

А значить С пропорциональна времени t заряда от 0 до  напряжения U.

Более корректно это в интегральной форме пишется, но тебе  этого понять не реально будет.

 

TynuK
Offline
Зарегистрирован: 05.02.2017

так в томто и дело что мне не нужно помнить месяц или больше, собрал подключил, потом достаточно только посмотреть и вспоминаю где у меня +, а где - и что куда подключенно, конечно если какой нибудь большой проэкт то да без схемы ни как,но я то делаю для себя

TynuK
Offline
Зарегистрирован: 05.02.2017

да я уже нашел все для этого, сегодня резисторы поищу и буду пробовать

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

andriano пишет:

Двойку не там поместил :))).

Позор на мою седую лысину! :((((

Конечно же

πNano2Mega.

Какую б епитимью на себя наложить за такой эпичный "обосрамс"?

Выберу-ка я сегодня самый идиотский "вопрос дня" и отвечу на него. Пока кандидат - вот этот. Я там, правда, уже отметился, но ничего, можно ведь и вернуться "с идеями".

T.Rook
Offline
Зарегистрирован: 05.03.2016

ЕвгенийП пишет:

 Пока кандидат - вот этот. Я там, правда, уже отметился, но ничего, можно ведь и вернуться "с идеями".

Я уже высказал одно предположение... Рассыпаюсь в извинениях

на форуме налицо "кризиз терпения". Мы ведь не знаем с каким багажом знаний по языкам пришел вопрошающий... И в N-ый раз объяснять прописные истины конено не очень.. Но и отсылка в "Ищу исполнителя" не всегда корректна. Сорри за оффтоп.

TynuK
Offline
Зарегистрирован: 05.02.2017

не хочу создавать новую тему, не могу понять все подключил работает,но только цифры местами поменять надо, 1 с пред последней, допустим должно быть 1280,а  показывает 8210

#include <ht1621.h>

#define DATA_PIN  2
#define WR_PIN    3
#define CS_PIN    5
#define RD_PIN    4

HT1621 ht1621(DATA_PIN, WR_PIN, RD_PIN, CS_PIN);

#define analogPin      0          // analog pin for measuring capacitor voltage
#define chargePin      13         // pin to charge the capacitor - connected to one end of the charging resistor
#define dischargePin   11         // pin to discharge the capacitor
#define resistorValue  10000.0F   // change this to whatever resistor value you are using
// F formatter tells compliler it's a floating point value
unsigned long startTime;
unsigned long elapsedTime;
float microFarads;                // floating point variable to preserve precision, make calculations
float nanoFarads;

byte pos;
byte val;

//массив констант для отображения цифр, минуса и пробела:
byte arr[10][3] = {
  {12, 6, 12}, //0
  {12, 0, 0}, //1
  {4, 14, 8}, //2
  {12, 14, 0}, //3
  {12, 8, 4}, //4
  {8, 14, 4}, //5
  {8, 14, 12}, //6
  {12, 4, 4}, //7
  {12, 14, 12}, //8
  {12, 14, 4}, //9  
};
//создаём новую функцию для отображения по шаблону "позиция-цифра":
void writeDigit(byte pos, byte val) {
  for (int i = 0; i < 3; i++)
    ht1621.writeMem(3 * pos + 3 + i , arr[val][i]);
}
void setup() {
  pinMode(DATA_PIN, OUTPUT);
  pinMode(WR_PIN,   OUTPUT);
  pinMode(CS_PIN,   OUTPUT);

  pinMode(chargePin, OUTPUT);     // set chargePin to output
  digitalWrite(chargePin, LOW);

  Serial.begin(9600);             // initialize serial transmission for debugging

  if (! ht1621.begin()) {
    Serial.println("Could not init device!\n");
  }
}

void loop() {
  digitalWrite(chargePin, HIGH);  // set chargePin HIGH and capacitor charging
  startTime = millis();

  while (analogRead(analogPin) < 648) {     // 647 is 63.2% of 1023, which corresponds to full-scale voltage
  }

  elapsedTime = millis() - startTime;
  // convert milliseconds to seconds ( 10^-3 ) and Farads to microFarads ( 10^6 ),  net 10^3 (1000)
  microFarads = ((float)elapsedTime / resistorValue) * 1000;
  Serial.print(elapsedTime);       // print the value to serial port
  Serial.print(" mS    ");         // print units and carriage return


  if (microFarads > 1) {
    Serial.print((long)microFarads);       // print the value to serial port
    Serial.println(" microFarads");         // print units and carriage return
  }
  else
  {
    // if value is smaller than one microFarad, convert to nanoFarads (10^-9 Farad).
    // This is  a workaround because Serial.print will not print floats

    nanoFarads = microFarads * 1000.0;      // multiply by 1000 to convert to nanoFarads (10^-9 Farads)
    Serial.print((long)nanoFarads);         // print the value to serial port
    Serial.println(" nanoFarads");          // print units and carriage return
  }

  /* dicharge the capacitor  */
  digitalWrite(chargePin, LOW);             // set charge pin to  LOW
  pinMode(dischargePin, OUTPUT);            // set discharge pin to output
  digitalWrite(dischargePin, LOW);          // set discharge pin LOW
  while (analogRead(analogPin) > 0) {       // wait until capacitor is completely discharged
  }

  pinMode(dischargePin, INPUT);            // set discharge pin back to input

  int AI0 = microFarads;
  for (int i = 4 ; i > 0; i--) {

    AI0 = (AI0 - AI0 % 10) / 10;
    writeDigit(i,AI0 % 10);

  }
}

 

JasKo
Offline
Зарегистрирован: 21.11.2015

Пробуй заменить в строке 94 

for (int i = 4 ; i > 0; i--) {

на 

for (int i = 1 ; i <= 4; i--) {

 

TynuK
Offline
Зарегистрирован: 05.02.2017

не так вообще во весь экран по половине нулика рисует

T.Rook
Offline
Зарегистрирован: 05.03.2016

JasKo имел в виду i++

Наверное. хотя смысл от меня ускользает т.к. Вы говорите об одной паре цифр.

JasKo
Offline
Зарегистрирован: 21.11.2015

Да именно ++

TynuK
Offline
Зарегистрирован: 05.02.2017

а так получилось вот так должно быть 1104, а показывает 0110

T.Rook
Offline
Зарегистрирован: 05.03.2016

поменяйте местами 96 и 97 строки.

TynuK
Offline
Зарегистрирован: 05.02.2017

во другое дело, только вначале нулик потом число, ща сам попробую избавиться от него

TynuK
Offline
Зарегистрирован: 05.02.2017

ну вот все, всем спасибо