Помогите разобраться в данном скетче, т.к. нужно срочно сделать прибор для считывания ускорения и последующем снятии данных с eeprom памяти ардуино. Прошу не закидывать меня камнями, времени на изучения среды нет. Сам прибор представляет из себя arduino nano на CH340g и модуля MPU6050. Цель - закрепить всё в корпусе ракеты, запустить и потом построить график ускорения. От знакомого, который делал практически такую же работу достался скетч, но, к сожалению, сам я разобраться не могу и поэтому прошу помощи здесь. Сам скетч: Код (C++): #include "Wire.h" #include "I2Cdev.h" #include "MPU6050.h" #include "EEPROM.h" MPU6050 accelgyro; int16_t ax, ay, az; int16_t gx, gy, gz; int p; int i; int switchPin=8; int ledPin=13; int hi; int low; void setup() { pinMode(switchPin,INPUT); pinMode(switchPin,OUTPUT); Serial.begin(9600); accelgyro.initialize(); delay(1000); //замедление } void loop() { i=0; p=0; do{ if(digitalRead(switchPin)==HIGH) { digitalWrite(ledPin, HIGH); Serial.println("eee"); p=0; do{ accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); az=int(az)+18350; // число > 255 разбиваем на 2 байта (макс. 65536) byte hi = highByte(az); // старший байт byte low = lowByte(az); // младший байт EEPROM.write(p, hi); // записываем в ячейку 1 старший байт p=p+1; EEPROM.write(p, low); // записываем в ячейку 2 младший байт p=p+1; delay(200); }while(p<1024); p=0; i=0; } else { digitalWrite(ledPin, LOW); hi=EEPROM.read(p); p=p+1; low=EEPROM.read(p); int n = word(hi, low); n=n-18350; Serial.print(i); Serial.print("\t"); Serial.println(n); p=p+1; i=i+1; } }while(p<1024); } Также не знаю, как запустить программу отдельно от компьютера при питании от кроны. Собственно весь вопрос в том, как начать запись показаний и как потом их снять.
От кроны программа работает так же как и от компьютера На восьмом пине висит переключатель (судя по коду - с фиксацией) Когда на восьмом пине 5 вольт - записываются показания в eeprom, если же на пине замля (т.е 0 вольт) - считываются данные из eeprom и отправляются в serial порт
Может это какой-то контакт , срабатывающий при ускорении. Включили прогу - крутит вхолостую на вывод. Началось ускорение - пошла записывать пока ускоряется. Может блокировка пока ракета не вышла из направляющих - обычный нажимной микрик.. Короче - экономит память от ненужной записи. А светодиод - помогает искать ракету в темноте. ПС. Только не понимаю, зачем в сетапе контакт переключателя конфигурируется на вывод. Он ведь работать не будет. Или я не шарю ?
Получается, mpu 6050 подключается на 3.3v, a4,a5,gnd. Батарея в свою очередь плюсом подключается на vin и через тумблер на 8 pin, а минус кидается на этот же gnd
Как спец говорю - поставьте вместо зеленого провода с микрика резистор 100 - 1000 ом. Береженого бог бережет.