Arduino + RWE

Какие есть либы: бесплатные: чтобы юзать моментально через excel vba arduino?

Например, ввел через ячейку A1 значение =9 и элегантно сунуть его в кошелек ардуино. Затем нажать на ардуино кнопку и в B2 уже значение 2

https://www.arduinolibraries.info/ Тут смотрели?

Нету там!!

VBA вам в помощь или PLX-DAQ и не забудьте pyserial! а может и serial.print хватит, вы так и не ответили на вопрос в другой теме, что ваша программа делает то должна ?)))

врет! на данный момент это я чекал ссылку)))

Сам ты! Не нашел - значит нету!! Да-да, значит надо было догадаться по названию что plx-daq для excel да?

Моя программа спортивный таймер!!
Можно и догадаться, что я не дурак!

вы просмотрели все 8447 библиотек и не нашли нечего для себя ?

а кто его знает, другие говорят разное…. а я склонен доверять людям… пока 2ды не обманут!

p.s. PLX-DAQ гуглится через поисковик, все устал я…. успехов!)))

Можно спросить у Вас…
По USB/ COM/ SERIAL/ UART можно ли передавать в excel напрямую без либ?
Я как-то через swith up передавал в arduion через power shell script не помню толи читал толи писал но все работало.

1.bat выглядел так:

#echo on
echo off
Powershell.exe -ExecutionPolicy Bypass -File "1.ps1"

1.ps выглядит так:

$port= New-Object System.IO.Ports.SerialPort COM3,9600,None,8,one
$port.open()
$port.Write("1")
Start-Sleep -Seconds 2
$port.Write("2")
Start-Sleep -Seconds 1
$port.Write("3")
Start-Sleep -Seconds 2
$port.Write("4")
Start-Sleep -Seconds 2
$port.Write("5")
Start-Sleep -Seconds 2
$port.Write("6")
Start-Sleep -Seconds 2
$port.Write("7")
$port.close()

В ардуино просто:


Serial.print("2");// Отправить из ардуино//
if(... >0){
String = Serial.readString(); //Принять в ардуино//

}

countervector0000 можно, кучей разных способов, особенно если создадите VBA скрипт, или гуглите PLX-DAQ и может это то что вам нужно…

Если Вы не дурак, то могли бы догадаться, что на vba можно написать чтение и запись в com порт.

3 лайка

Скажите по точнее, код есть минимальный?Там же нужно указывать номер порта: COM5, например.

Ребят, все норм только не вижу своей темы?

Нету у тебя больше темы…

1 лайк

Может поту что:

?

а может это мои завистники ? которые сопротивляются массовому внедрению моего алгоритма шифрования?)))
надо проверить…

// Функция кодирования четырёх чисел в хеш
uint32_t encodeNumbers(uint8_t A, uint8_t B, uint8_t C, uint8_t D) {
  uint32_t combined = ((uint32_t)A << 24) | ((uint32_t)B << 16) | ((uint32_t)C << 8) | D;
  
  // Битовое перемешивание (меняем местами соседние биты)
  uint32_t mixed = 0;
  for (uint8_t i = 0; i < 32; i++) {
    uint8_t new_pos = (i % 2 == 0) ? i + 1 : i - 1;
    if (new_pos < 32) {  // Убедимся, что не выходим за границы
      mixed |= ((combined >> i) & 0x1) << new_pos;
    }
  }
  
  // XOR с 32-битной маской
  mixed ^= 0x5A5A5A5A;
  return mixed;
}

// Функция декодирования хеша в четыре числа
void decodeNumbers(uint32_t hash, uint8_t *A, uint8_t *B, uint8_t *C, uint8_t *D) {
  uint32_t mixed = hash;
  mixed ^= 0x5A5A5A5A;  // Обратный XOR
  
  // Обратное битовое перемешивание
  uint32_t combined = 0;
  for (uint8_t i = 0; i < 32; i++) {
    uint8_t original_pos = (i % 2 == 0) ? i + 1 : i - 1;
    if (original_pos < 32) {  // Убедимся, что не выходим за границы
      combined |= ((mixed >> original_pos) & 0x1) << i;
    }
  }
  
*A = (combined >> 24) & 0xFF;
*B = (combined >> 16) & 0xFF;
*C = (combined >> 8)  & 0xFF;
*D = combined & 0xFF;
}

void setup() {
Serial.begin(9600);
  
// === Тест кодирования (A=12, B=97, C=45, D=200) ===
uint8_t A = 12;
uint8_t B = 97;
uint8_t C = 45;
uint8_t D = 200;
  
uint32_t hash = encodeNumbers(A, B, C, D);
Serial.print("Закодировано: A="); Serial.print(A);
Serial.print(", B="); Serial.print(B);
Serial.print(", C="); Serial.print(C);
Serial.print(", D="); Serial.print(D);
Serial.print(" → Хеш="); Serial.println(hash, HEX);  // Вывод в HEX для удобства
  
// === Тест декодирования ===
uint8_t decoded_A, decoded_B, decoded_C, decoded_D;
decodeNumbers(hash, &decoded_A, &decoded_B, &decoded_C, &decoded_D);
  
Serial.print("Декодировано: Хеш="); Serial.print(hash, HEX);
Serial.print(" → A="); Serial.print(decoded_A);
Serial.print(", B="); Serial.print(decoded_B);
Serial.print(", C="); Serial.print(decoded_C);
Serial.print(", D="); Serial.println(decoded_D);
}

void loop() {}

вот тема пропадет, значит это все заговор!)))

Можете сказать как это полностью связать с excel: а именно, чтобы когда открываю excel нажимаю на A1 и пишу там “Привет, @”.
то в ардуино посылается в:
if(Serial.available>0){ s=A1.value, //, а ми вот так A1="Привет, @";}
И наоборот: когда в ардуино пишу:
Serial.print(A2.Value="Круть");
Т.о. нужно real time обработка!)))
Заранее, спасибо!

>> Какие есть либы: бесплатные: чтобы юзать моментально через excel vba arduino?

Это вы можете спросить у ИИ. Бонусом возможно научитесь задавать вопросы и разбираться в ответах, и ИИ не будет вам хамить (скорее всего).

Например задав вопрос https://chat.qwen.ai

“Есть ли готовые расширения Excell для связи с Arduino по COM порту?”

Вы получите несколько вариантов.

int a = 0;
int b = 0;
int c = 0;

void setup() {
Serial.begin(115200); // Инициализация последовательного порта на скорости 115200 бод
}

void loop() {
if (Serial.available() > 0) { // Проверяем, есть ли доступные данные
String input = Serial.readStringUntil('\n'); // Читаем строку до символа новой строки
// Проверяем, начинается ли строка с 'R' и содержит 'G' и 'B'
if (input.startsWith("R") && input.indexOf('G') > 1 && input.indexOf('B') > 1) {
// Извлекаем значения
int rIndex = input.indexOf('R') + 1;
int gIndex = input.indexOf('G');
int bIndex = input.indexOf('B');
// Извлекаем числа из строки
a = input.substring(rIndex, gIndex).toInt();
b = input.substring(gIndex + 1, bIndex).toInt();
c = input.substring(bIndex + 1).toInt();

Serial.print(a);
Serial.print(' ');
Serial.print(b);
Serial.print(' ');
Serial.print(c);
Serial.print(' ');
}
}
}//конец

хотел найти домик этому парсеру, как можно в больших проектах, отправляете R1G2B3 и переменные станут а=1 b=2 c=3 может и вам пригодится, данные отправлять через компорт сможете, а как сделать в связке с exel сами подумайте, и к ИИ кстате можете обратиться))) вот вам основа