#1 Re: Різне » Защита машины от куницы » 2020-10-20 09:08:43

То поставте стабілітрон перед стабілізатором. Бажано якийсь (савєцкіх врємьон, за якими горюють малороси) ват на п'ять. А перед ним резистор на сто ом. Та й вся проблема.

#2 Re: Проекты » Список исполнителей » 2020-10-20 08:14:26

Напишу програму для управління вашим ардуїно з ПК. Пишу на Delphi та VisualStudio. Можу написати для самої Ардуїно, за допомоги Arduino IDE або Atmel Studio. Після виконання віддаю все ( висхідний код, продукт)
si4karuk@meta.ua

#4 Різне » Напишу програмку для зв'язку ПК і вашого пристрою. » 2020-10-19 13:44:36

Віктор
відповідей: 3

Привіт. Задумав з'єднати ардуїнку з комп'ютером? Напишу програму для ПК. Звертайся. si4karuk@meta.ua

#5 Re: Проекты » Тестер кабелів. » 2020-08-27 10:16:50

Скільки часу, на вашу думку, займе перевірка ста дротів, за допомоги 26 здвигових регістрів? roll

#6 Re: Проекты » Тестер кабелів. » 2020-08-23 13:16:25

Добре. А як приблизно має виглядати логіка роботи?

#7 Re: Проекты » Тестер кабелів. » 2020-08-21 06:05:47

Кінці кабеля близько. На кінцях роз'єми, мапа папа. Треба два кінці вставити в пристрій а той, в свою чергу провірить на кз, обрив чи переплутаність проводів. То яку схему зліпити щоб отримати сто виходів і сто входів??

#8 Re: Проекты » Тестер кабелів. » 2020-08-18 11:54:37

Добре, домовились. Я не дуже на цьому розуміюсь, але потрібно перевіряти три складові.
1) Перевірити чи нема обриву.
2) Перевірити чи провідники не переплутані місцями.
3) Чи нема короткого замикання.

Я так розумію, що потрібно 200 ніжок. Який МК використати?

#9 Re: Проекты » Тестер кабелів. » 2020-08-17 13:27:45

А це точно форум електронників? Потрібно всього лише перевіряти правильність розпіновки, на обрив та кз. Невже без якогось там забугорного обладнання не обійтись? hmm

#10 Проекты » Тестер кабелів. » 2020-08-16 22:58:59

Віктор
відповідей: 23

Потрібен тестер кабеля на 100 жилок. Що можна придумати? Що порадите? А може є готові рішення? Дякую

#11 Re: Програмування Arduino » Робота з SD Card Arduino » 2019-11-06 00:01:30

А є якісь примірники, щоб можна було подивитись як це реалізовано?

#12 Програмування Arduino » Робота з SD Card Arduino » 2019-11-05 23:05:53

Віктор
відповідей: 3

І знову я, зі своїми дурними питаннями.
Воював я з eeprom 24C32, доки не зрозумів що мало в неї пам'яті.

    От же, працюватиму з флешкою.
Багато примірників є в інтернеті, та те що потрібно так і не знайшов.
А потрібно всього лише створити текстовий файл і записати в нього багато змінних.
Наприклад:

num1 = 10
num2 = 0
num3 = 1000
num4 = 17590
num5 = 12
і так далі...

Як записати, зі стандартної бібліотеки, приблизно зрозумів, та от як зробити так, щоб не переписуючи файл, змінити значення любої змінної?
hmm
Невже потрібно зчитати все, розкидати по змінним в контролері, потім стерти файл на флешці, і записати новий уже із потрібними значеннями???  yikes
Якщо так, то як зчитати ці змінні?

#14 Програмування Arduino » Лог даних в eeprom 24c32 на платі годинника ds3231 » 2019-10-20 22:13:02

Віктор
відповідей: 4

Вітаю. Я в програмуванні ардуїно новачок, тому прошу сильно не сміятись.

Проблема слідуюча... Мені потрібно записувати значення змінних в мікросхему що встановлена на платі годинника ds3231, але я не знаю як це реалізувати.
Писати треба 50 змінних кожного дня, протягом місяця.

Запис одного дня, приблизно такий:

формат:
адреса - дані(від 0 до 9999).

0x01 - 01.01.2019
0x02 - 5 = 2;
0x03 - 6 = 0;
0x04 - 7 = 1000;
0x05 - 8 = 0;
і так до 
0x32 - 50 = 112

слідуючий день

0x33 - 02.01.2019
0x34 - 5 = 7;
0x35 - 6 = 12;
0x36 - 7 = 0;
0x37 - 8 = 1176;
і так до 
0x65 - 50 = 1427;

І так тридцять днів.

Скажемо, дані я якось запишу, а от як бути, коли кожен день, потрібно робити здвиг на один день назад. Як це реалізувати??
Невже потрібно буде зчитувати всі дані, а потім змінювати адреси в пам'яті?? roll
Може вже хтось таке реалізовував? Чи підкажіть в яку сторону копати.
Дякую. hmm

#15 Re: Апаратні питання » Обробник промислового енкодера. » 2019-02-13 06:29:55

Надів на енкодер коліща від принтера. Намотав капроновий шнур довжиною 1м. Коли протягую зі швидкістю, близько двох обертів на секунду, отримую сталі показники. Коли ж збільшу швидкість до п'яти, показник зменшується. Що свідчить про пропущені імпульси. Шкода ?

#16 Re: Апаратні питання » Обробник промислового енкодера. » 2019-02-12 13:12:22

Спробував, працює але ще не досить швидко. Можливо порадите якусь спеціалізовану мікросхему для обробки енкодера?
Просто, якщо нашпигувати контролер функціями роботи з кнопками, датчиками і дисплеем, то він просто не зможе працювати з енкодером.
Варіант з двома arduino, якось не вселяє довіри...

#17 Апаратні питання » Обробник промислового енкодера. » 2019-02-10 19:49:01

Віктор
відповідей: 8

Вітаю.
Вирішив створити вимірювач довжини матеріалів. Ну щоб була можливість вимірювати довжину кабелю, чи ще якихось причуд.
Спочатку думав що все буде дуже просто. Достатньо обробити енкодер та перерахувати кількість отриманих імпульсів у сантиметри, все це вивести на якийсь дисплей.
В наявності маю енкодер RU1033. Живлення 5 вольт. 2000 імпульсів на один оберт.
Находив дуже багато готових скетчів...
Та все ніяк не можу добитися чіткості підрахунку кількості імпульсів. Виникає питання... Невже ардуїно не здатна працювати з такими енкодерами??

Допоможіть будь ласка. Дякую.

Ось най вірогідніше працюючий код з інтернету. Коли помалу обертаю енкодер, то рахує приблизно однаково, коли ж починаю обертати швидко, отримую помилку.

long int out = 0;
const byte ledPin = 13;
const byte leftPin = 2;
const byte rightPin = 3;
volatile byte state = LOW;
volatile byte x;
volatile byte a;
volatile byte b;
volatile byte c;
boolean OK=false;
boolean OK1=true;
boolean OK2=false;
void setup() {
DDRB |= (1<<DDB5);//pin 13 is in output mode
DDRD&=~(1<<DDD2);//pin 2 is in input mode
PORTD|=(1<<DDD2);// activate the pull-up resistor 14.2.1 atmega 328 datasheet
PORTD&=~(1<<DDD3);//pin 3 is in input mode
PORTD|=(1<<DDD3);// activate the pull-up resistor 14.2.1 atmega 328 datasheet
attachInterrupt(digitalPinToInterrupt(leftPin), encoder, CHANGE);//call left function when pin 2 is changing state
attachInterrupt(digitalPinToInterrupt(rightPin), encoder1, CHANGE);// call right function when pin 3 is changing state
Serial.begin(250000);
}

void loop() {
if(OK2==false){//just for one time
x=PIND&B00001100;// when the sistem start x takes the pins state
a=PIND&B00001100;// when the sistem start a takes the pins state
OK2=true;
}
digitalWrite(ledPin, state);
//Serial.println(x);
Serial.println(out/380);
// Serial.println(OK);
if (OK1==false)
{
  Serial.println("error");// to appear more time on the serial monitor
}

}

void encoder() 
{
  // function to check the rotate direction when pin 2 is changing state
  cli();// stop interrupts which could appear
  a=PIND&B00001100;// a takes the new state of pins beacuse encoder function is call when pin 2 is changing state
  b=a>>2;// move bits for pin 2 and 3 in the places coressponding to 2^0 and 2^1
  c=b | x;// OR function between b and x
  if(c==2 || c==4 || c==11 || c==13)// values in pairs of bits in the format xxyy
    {
      out++;
      OK=false;// right rotate direction
    }
  if(c==1 || c==7 || c==8 || c==14)// values in pairs of bits in the format xxyy
    {
      out--;
      OK=true;// left rotate direction
    }
   else if(OK==true)
    {// if OK is true and c has other values the arduino miss steps in the ccw direction
      OK1=false;
      //Serial.println(“error”);
    }
   x=PIND&B00001100;// x takes the new state of pins
  state = !state;// blink LED from pin 13
  sei();// enable interrupts
}
void encoder1()
{// function to check the rotate direction when pin 2 is changing state
  cli();// stop interrupts which could appear
  a=PIND&B00001100;// a takes the new state of pins beacuse encoder1 function is call when pin 2 is changing state
  b=a>>2;// move bits for pin 2 and 3 in the places coressponding to 2^0 and 2^1
  c=b | x;
  if(c==1 || c==7 || c==8 || c==14)// values in pairs of bits in the format xxyy
    {
      OK=true;// left rotate direction
    }
   if(c==2 || c==4 || c==11 || c==13)// values in pairs of bits in the format xxyy
    {
      OK=false;// right rotate direction
    }
  else if(OK==false)
  {// if OK is false and c has other values the arduino miss steps in the cw direction
    OK1=false;
    Serial.println("error");
  }
  x=PIND&B00001100;// x takes the new state of pins
  state = !state;// blink LED from pin 13
  sei();// enable interrupts
}

Підвал форуму