В настоящее время я работаю над системой ЭЭГ с использованием Arduino. Система предназначена для того, чтобы вибрировать вибратор в течение 0,1 секунды, подождать 0,5 секунды, а затем снова вибрировать в течение 0,1 секунды. Однако с самого начала я хочу, чтобы он считывал ЭЭГ (Serial.println (brain.readCSV ()); Serial.println (brain.readErrors ());) каждые 0,1 секунды с начала.
проблема в том, что он берет только один образец и просто повторяет его на протяжении всего процесса до тех пор, пока он не зациклится, вместо того, чтобы постоянно обновлять через l oop.
Как я могу заставить его непрерывно читать новые данные, пока все система работает.
#include "Brain.h"
#include <SPI.h>
#include <Wire.h>
int n=0;
int m=0;
// Set up the brain parser, pass it the hardware serial object you want to listen on.
Brain brain(Serial);
int vib = 5;
void setup() {
// Start the hardware serial.
Serial.begin(9600);
pinMode(vib, OUTPUT);
}
void loop() {
// Expect packets about once per second.
// The .readCSV() function returns a string (well, char*) listing the most recent brain data, in the following format:
// "signal strength, attention, meditation, delta, theta, low alpha, high alpha, low beta, high beta, low gamma, high gamma"
if (brain.update()) {
Serial.println(brain.readCSV());
Serial.println(brain.readErrors());
if(brain.readSignalQuality() == 0) {
// Vibrate
digitalWrite(vib,HIGH);
Serial.println(brain.readCSV());
Serial.println(brain.readErrors());
delay(100);
while (n<500){
n=n+100;
digitalWrite(vib,LOW);
Serial.println(brain.readCSV());
Serial.println(brain.readErrors());
Serial.println(n);
delay(100);
}
digitalWrite(vib,HIGH);
Serial.println(brain.readCSV());
Serial.println(brain.readErrors());
delay(100);
while (m<10000){
m=m+100;
digitalWrite(vib,LOW);
Serial.println(brain.readCSV());
Serial.println(brain.readErrors());
Serial.println(m);
delay(100);
}
n=0;
m=0;
}
}
}