#1 Re: Програмування Arduino » Альтернатива Arduino ide » 2021-03-27 11:52:52

gfo пише:

Я купил его за 23 евро. пол цены и он ваш )) устроит?

Надо брать для колекции. Я ж должен топтаться по граблям...

#2 Re: Програмування Arduino » Альтернатива Arduino ide » 2021-03-22 13:18:41

gfo пише:

Мне тоже понравилось и я даже его купил. Но по сравнению с платформио - дичь. Автодополнение работает криво. Могу перепродать лицензию не дорого ))

Давайте откуплю.

#3 Re: Програмування Arduino » Альтернатива Arduino ide » 2021-03-19 18:27:37

Совсем плохо с работой?

Ruslan S пише:
0z0n пише:

Переменных где то под сотку. С десяток масивов. 8 флоатов. Може в голове кардибалет. И пару дней не писать
hmm

А переменные наверное у вас тру или фелз?
Десяток масивов wink
Похоже программирование не ваш конёк. Никакой редактор эту оплошность не устраник окромя Вас, любезный друг!
Надо учится программировать или спросите как сделать...

#4 Re: Програмування Arduino » Nextion запись переменной в саму панель а не в ардуино » 2021-03-19 18:26:14

repo, wepo. Как бы за тот срок пока оно тут висит и обезьяна догнала бы. Ответ вообще не туда.

#5 Re: Програмування Arduino » HC-06 не дружит с кириллицей » 2021-03-17 11:11:03

Очень похоже на скрытые спец символы. Возможно вы откуда то копировали код. И еще вопрос, а как отображается в обыкновенном терминале?

#6 Програмування Arduino » Nextion запись переменной в саму панель а не в ардуино » 2021-02-24 11:00:07

0z0n
відповідей: 2

Может кто сталкивался. Есть условно 5 кнопок с фиксацией. На таче. Надо запоминать положение фиксированной кнопки. Какая, одна из 5. Также есть более 20 параметров integer. Чтобы при загрузке она их подымала. Как это можно записывать в память самой панели?

#7 Re: Програмування Arduino » Альтернатива Arduino ide » 2021-01-23 17:03:40

Переменных где то под сотку. С десяток масивов. 8 флоатов. Може в голове кардибалет. И пару дней не писать
hmm

#8 Програмування Arduino » Альтернатива Arduino ide » 2021-01-23 11:29:54

0z0n
відповідей: 11

Довольно сложный код. Начинаю путатся в переменных и процедурах. Может кто посоветует альтернативу.

Собственный опыт:
1. eclipse - вообще не понял как создать проект. Ставил ставил. Так и не получилось.
2. Geany - не плохой редактор. Но это с другой планеты. Я так и не понял как заливать и подключать библиотеки.
3. platformio-ide - таже болячка с библиотеками. Кидать в папку с проектом?
4. PROGRAMINO IDE  - понравилось, но не нашел лекарства. А триал душу не греет.
5. codeblocks - все супер. Не нашел как сделать проэкт для ESP или STM. Если писать под ардуино все хорошо. Но когда у вас другая плата допустим как у меня ЕСП32. Не понял как создавать проекты альтернативы ардуино.

#9 Re: Програмування Arduino » опрос портов ардуино » 2021-01-02 16:55:35

Впринципе все не так. Сигнал надо опрашивать постояннов цикле. Второй не понятно что вы опрашиваете. Это анагологовый сигнал или дискрет. Если значение 1,0 тогда проще. Но кто дает этот сигнал я так и не понял что за устройство? Где вы его берете. И второй вопрос что с ним делать тоже не понятно до конца.

#10 Re: Програмування Arduino » Поворотные колёса на машинке » 2020-12-28 16:54:34

Тут точно не програмирование. Тут механика.

https://uk.wikipedia.org/wiki/%D0%94%D0%B8%D1%84%D0%B5%D1%80%D0%B5%D0%BD%D1%86%D1%96%D0%B0%D0%BB_(%D0%BC%D0%B5%D1%85%D0%B0%D0%BD%D1%96%D0%BA%D0%B0).

#11 Re: Програмування Arduino » ESP32 Программирование (полное API) » 2020-12-28 16:52:18

http://forum.amperka.ru/threads/esp-8266-esp32-nodemcu-lua-%D0%B0%D0%B7%D1%8B-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F.12558/

Вот тут курс молодого бойца по есп. Там просто дохрена. Я все пробую, учусь. И человек который выкладывал адекватный. Отвечает.

#13 Re: Програмування Arduino » i2c передача 8 чисел » 2020-12-24 14:33:59

Honey пише:

Wire.requestFrom(8, 16);

Пасиб огромное

А вот здесь на 16 менять не надо в операции сравнения?

   myInts1 = Wire.read ();
   myInts1 <<= 8; /// 16 здесь не надо?
   myInts1 |= Wire.read ();

#14 Re: Програмування Arduino » XOD vs Arduino IDE » 2020-12-24 14:30:14

Из этого изврата есть FLProg.Ток она пошире и френдли. Но я такое не люблю

#15 Програмування Arduino » i2c передача 8 чисел » 2020-12-24 14:06:07

0z0n
відповідей: 3

Помогите плиз взят пример:
Мастер прием:

#include <Wire.h>
int result1 = 2;
int result2 = 2;
int result3 = 2;
int result4 = 2;

void setup() {
  Wire.begin();        // join i2c bus (address optional for master)
  Serial.begin(9600);  // start serial for output
}

void loop() {
  Wire.requestFrom(8, 8);    // request 6 bytes from slave device #8

  while (Wire.available()) { // slave may send less than requested
   result1 = Wire.read ();
   result1 <<= 8;
   result1 |= Wire.read ();
   
   result2 = Wire.read ();
   result2 <<= 8;
   result2 |= Wire.read ();
   
   result3 = Wire.read ();
   result3 <<= 8;
   result3 |= Wire.read ();
   
   result4 = Wire.read ();
   result4 <<= 8;
   result4 |= Wire.read ();
 
      Serial.print(result1);Serial.print("  ");Serial.print(result2);Serial.print("  ");Serial.print(result3);Serial.print("  ");Serial.println(result4);
 
  }

  delay(500);
}

Слейв отдача:

#include <Wire.h>
    int value1 = -12350;  // ie. 0x04 0xD2
    int value2 = -1350; 
    int value3 = 2350;     
    int value4 = 12350; 

void setup() {
  Wire.begin(8);                // join i2c bus with address #8
  Wire.onRequest(requestEvent); // register event
}

void loop() {
  delay(100);
  value1 = value1 + 1 ;
  value2 = value2 + 1 ;
  value3 = value3 + 1 ;
  value4 = value4 + 1 ;
}

// function that executes whenever data is requested by master
// this function is registered as an event, see setup()
void requestEvent() {
  Wire.write (highByte (value1));   
  Wire.write (lowByte (value1)); 
  
  Wire.write (highByte (value2));   
  Wire.write (lowByte (value2));

  Wire.write (highByte (value3));   
  Wire.write (lowByte (value3)); 

  Wire.write (highByte (value4));   
  Wire.write (lowByte (value4)); 
  // as expected by master
}

Переделал отдачу

for (int i = 0; i < 8; i++) {  
  Wire.write (highByte (myInts[i]));   
  Wire.write (lowByte (myInts[i])); 
}
}

Прием:

void WareReadSlave() {  // request 8 bytes from slave device #8
Wire.requestFrom(8, 8);

while (Wire.available()) { // slave may send less than requested

   myInts1 = Wire.read ();
   myInts1 <<= 8;
   myInts1 |= Wire.read ();

   myInts2 = Wire.read ();
   myInts2 <<= 8;
   myInts2 |= Wire.read ();

   myInts3 = Wire.read ();
   myInts3 <<= 8;
   myInts3 |= Wire.read ();
 
   myInts4 = Wire.read ();
   myInts4 <<= 8;
   myInts4 |= Wire.read ();
 
   myInts5 = Wire.read ();
   myInts5 <<= 8;
   myInts5 |= Wire.read ();

   myInts6 = Wire.read ();
   myInts6 <<= 8;
   myInts6 |= Wire.read ();

   myInts7 = Wire.read ();
   myInts7 <<= 8;
   myInts7 |= Wire.read ();

   myInts8 = Wire.read ();
   myInts8 <<= 8;
   myInts8 |= Wire.read ();

}  
}

В последних четырех значениях билиберда.
Как изменить код. Подскажите?

#16 Re: Програмування Arduino » Инициализация SPI2 на Arduino Mega 2560 Rev3 » 2019-02-11 09:08:39

ard125 пише:

Я смотрю что у вас в скетчах по разному обозначен пин слейв для карты. В одном sc, в другом чипселект. Может в этом проблема?

наверное запутался. Но как я его уже не обзывал. толку 0.

#17 Re: Програмування Arduino » Инициализация SPI2 на Arduino Mega 2560 Rev3 » 2019-02-10 22:48:29

Они у вас что по отдельности работают?

Не RF24 в определенный момент затыкается. Уже выяснил что у меня нет SPI2 а проблема в китайском модуле SD micro. Он не заканчивает сесию а втупую держиш шину. Из за этого масса проблем.

#18 Re: Програмування Arduino » Инициализация SPI2 на Arduino Mega 2560 Rev3 » 2019-02-10 19:43:03

Это я уже читал. Не очень понимаю. Там в мануале сказано что есть 2 SPI независимых. (https://www.microchip.com/wwwproducts/en/ATmega2560)По идеее я могу их оба сделать мастерами. Как сделать второй мастером. Как его вообще объявить? В чем суть мат части? Да чего то не понимаю. На вики болт тоже. При чем тут вики.

#19 Програмування Arduino » Инициализация SPI2 на Arduino Mega 2560 Rev3 » 2019-02-10 12:59:48

0z0n
відповідей: 9

Нужна помощь с этим вопросом т.к. модуль micro sd card блокирует работу других устройств arduino на шине SPI. Взял Megu для этих целей но не могу поднять SPI2 помогите кто соображает как это сделать. Мат части нигде толком нет. roll

Точнее модуль SD работает всегда но вот незадачка если V5+ подключаю к источнику питания даже не подключив V5- модуль RF24 ложится и начинает при опросе каналов  кидать "4444444444444444444444444444444444444444" как будто он не подключен.

Вот стандартный скетч немного переработаный для "RF 24"

#include <Wire.h>
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include <SD.h>


Sd2Card card;
SdVolume volume;
SdFile root;

const int chipSelect = 4;

//RF24 radio(9,10); // инициализировать модуль на пинах 9 и 10 Для Уно
RF24 radio(9,53);// Для Меги

int SR = 53;
int SC = 4;

const uint8_t num_channels = 128;
uint8_t values[num_channels];
void setup(void)
{

Serial.begin(9600);

pinMode(SR,OUTPUT);
pinMode(SC,OUTPUT);
pinMode(9,OUTPUT);
digitalWrite(9, LOW);
digitalWrite(SR, LOW);
digitalWrite(SC, HIGH ); // - работа с пином  
  
  printf_begin();
  radio.begin();
  radio.setAutoAck(false);
  radio.startListening();

  radio.printDetails();  // Вот эта строка напечатает нам что-то, если все правильно соединили.
  delay(5000);              // И посмотрим на это пять секунд.

  radio.stopListening();
  int i = 0;    // А это напечатает нам заголовки всех 127 каналов
  while ( i < num_channels )  {
    printf("%x",i>>4);
    ++i;
  }
  printf("\n\r");
  i = 0;
  while ( i < num_channels ) {
    printf("%x",i&0xf);
    ++i;
  }
  printf("\n\r");
}
const int num_reps = 100;

void loop(void)
{
  memset(values,0,sizeof(values));
  int rep_counter = num_reps;
  while (rep_counter--) {
    int i = num_channels;
    while (i--) {
      radio.setChannel(i);
      radio.startListening();
      delayMicroseconds(128);
      radio.stopListening();
      if ( radio.testCarrier() )
        ++values[i];
    }
  }
  int i = 0;
  while ( i < num_channels ) {
    printf("%x",min(0xf,values[i]&0xf));
    ++i;
  }
  printf("\n\r");
}
int serial_putc( char c, FILE * ) {
  Serial.write( c );
  return c;
}

void printf_begin(void) {
  fdevopen( &serial_putc, 0 );
} 

И вот для SD


#include <Wire.h>

#include <SPI.h>
#include <SD.h>

#include "nRF24L01.h"
#include "RF24.h"

int SR = 53;
int SC = 4;

Sd2Card card;
SdVolume volume;
SdFile root;

const int chipSelect = 4;

void setup() {
pinMode(SR,OUTPUT);
pinMode(SC,OUTPUT);
pinMode(9,OUTPUT);
digitalWrite(9, LOW);
digitalWrite(SR, HIGH);
digitalWrite(SC, LOW); // - работа с пином  
    
    
    Serial.begin(9600);
    Serial.print("\nInitializing SD card...");

    if (!card.init(SPI_HALF_SPEED, chipSelect)) {
        // неверное подключение или карта неисправна
        Serial.println("initialization failed");
        return;
    } else {
        // всё ок!
        Serial.println("Wiring is correct and a card is present.");
    }

    // считываем тип карты и выводим его в COM-порт
    Serial.print("\nCard type: ");
    switch (card.type()) {
        case SD_CARD_TYPE_SD1:
            Serial.println("SD1");
            break;
        case SD_CARD_TYPE_SD2:
            Serial.println("SD2");
            break;
        case SD_CARD_TYPE_SDHC:
            Serial.println("SDHC");
            break;
        default:
            Serial.println("Unknown");
    }

    // инициализация файловой системы
    if (!volume.init(card)) {
        // неверная файловая система
        Serial.println("Could not find FAT16/FAT32 partition.");
        return;
    }

    // считываем тип и вычисляем размер первого раздела
    uint32_t volumesize;
    Serial.print("\nVolume type is FAT");
    Serial.println(volume.fatType(), DEC);
    Serial.println();

    volumesize = volume.blocksPerCluster(); // блоков на кластер
    volumesize *= volume.clusterCount(); // кластеров
    volumesize *= 512; // 512 байтов в блоке, итого байт.. 
    Serial.print("Volume size (bytes): ");
    Serial.println(volumesize);
    Serial.print("Volume size (Kbytes): ");
    volumesize /= 1024;
    Serial.println(volumesize);
    Serial.print("Volume size (Mbytes): ");
    volumesize /= 1024;
    Serial.println(volumesize);

    Serial.println("\nFiles found on the card (name, date and size in bytes): ");
    root.openRoot(volume);
    // выводим список файлов
    root.ls(LS_R | LS_DATE | LS_SIZE);
}

void loop(void) {
}

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