Ви не увійшли.
Сторінки 1
То поставте стабілітрон перед стабілізатором. Бажано якийсь (савєцкіх врємьон, за якими горюють малороси) ват на п'ять. А перед ним резистор на сто ом. Та й вся проблема.
Напишу програму для управління вашим ардуїно з ПК. Пишу на Delphi та VisualStudio. Можу написати для самої Ардуїно, за допомоги Arduino IDE або Atmel Studio. Після виконання віддаю все ( висхідний код, продукт)
si4karuk@meta.ua
Привіт. Задумав з'єднати ардуїнку з комп'ютером? Напишу програму для ПК. Звертайся. si4karuk@meta.ua
Скільки часу, на вашу думку, займе перевірка ста дротів, за допомоги 26 здвигових регістрів?
Добре. А як приблизно має виглядати логіка роботи?
Кінці кабеля близько. На кінцях роз'єми, мапа папа. Треба два кінці вставити в пристрій а той, в свою чергу провірить на кз, обрив чи переплутаність проводів. То яку схему зліпити щоб отримати сто виходів і сто входів??
Добре, домовились. Я не дуже на цьому розуміюсь, але потрібно перевіряти три складові.
1) Перевірити чи нема обриву.
2) Перевірити чи провідники не переплутані місцями.
3) Чи нема короткого замикання.
Я так розумію, що потрібно 200 ніжок. Який МК використати?
А це точно форум електронників? Потрібно всього лише перевіряти правильність розпіновки, на обрив та кз. Невже без якогось там забугорного обладнання не обійтись?
Потрібен тестер кабеля на 100 жилок. Що можна придумати? Що порадите? А може є готові рішення? Дякую
А є якісь примірники, щоб можна було подивитись як це реалізовано?
І знову я, зі своїми дурними питаннями.
Воював я з eeprom 24C32, доки не зрозумів що мало в неї пам'яті.
От же, працюватиму з флешкою.
Багато примірників є в інтернеті, та те що потрібно так і не знайшов.
А потрібно всього лише створити текстовий файл і записати в нього багато змінних.
Наприклад:
num1 = 10
num2 = 0
num3 = 1000
num4 = 17590
num5 = 12
і так далі...
Як записати, зі стандартної бібліотеки, приблизно зрозумів, та от як зробити так, щоб не переписуючи файл, змінити значення любої змінної?
Невже потрібно зчитати все, розкидати по змінним в контролері, потім стерти файл на флешці, і записати новий уже із потрібними значеннями???
Якщо так, то як зчитати ці змінні?
Щось взагалі не розумію про що мова.
Вітаю. Я в програмуванні ардуїно новачок, тому прошу сильно не сміятись.
Проблема слідуюча... Мені потрібно записувати значення змінних в мікросхему що встановлена на платі годинника 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;
І так тридцять днів.
Скажемо, дані я якось запишу, а от як бути, коли кожен день, потрібно робити здвиг на один день назад. Як це реалізувати??
Невже потрібно буде зчитувати всі дані, а потім змінювати адреси в пам'яті??
Може вже хтось таке реалізовував? Чи підкажіть в яку сторону копати.
Дякую.
Надів на енкодер коліща від принтера. Намотав капроновий шнур довжиною 1м. Коли протягую зі швидкістю, близько двох обертів на секунду, отримую сталі показники. Коли ж збільшу швидкість до п'яти, показник зменшується. Що свідчить про пропущені імпульси. Шкода ?
Спробував, працює але ще не досить швидко. Можливо порадите якусь спеціалізовану мікросхему для обробки енкодера?
Просто, якщо нашпигувати контролер функціями роботи з кнопками, датчиками і дисплеем, то він просто не зможе працювати з енкодером.
Варіант з двома arduino, якось не вселяє довіри...
Вітаю.
Вирішив створити вимірювач довжини матеріалів. Ну щоб була можливість вимірювати довжину кабелю, чи ще якихось причуд.
Спочатку думав що все буде дуже просто. Достатньо обробити енкодер та перерахувати кількість отриманих імпульсів у сантиметри, все це вивести на якийсь дисплей.
В наявності маю енкодер 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
}
Сторінки 1