Ви не увійшли.
Доброго дня. Хто працює з датчиками визначення кольору? Відгукніться. Є декілька запитань по роботі датчика. Дякую.
Є два скетча. Перший працює задовільно. Другий - ні.
Другий відповідає за роботу датчика кольору.
Перший поєднання першого,однак з записом на Sd картку.
Проблема: внаслідок роботи другого скетчу дані кольору повинні зберігатися на картку,однак зберігаться лише 000.
Допоможіть....
#include <Timer.h>
#include <SPI.h>//
#include <SD.h>
#include <DS3231.h>
#include <Wire.h>
Timer timer;
Timer t;
File myFile;
const uint8_t PIN_CS = 4; // указываем номер вывода arduino подключенного к выводу CS адаптера
DS3231 Clock;
bool Century = false;
bool h12;
bool PM;
byte year, month, date, DoW, hour, minute, second;
int s0 = 8;
int s1 = 9;
int s2 = 2;
int s3 = 7;
int out = 10;
int red ;
int green ;
int blue ;
void setup() {
Wire.begin();// Start the I2C interface
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
pinMode(out, INPUT);
Serial.begin(9600);
digitalWrite(s0, HIGH);
digitalWrite(s1, HIGH);
while (!Serial) {
;
}
timer.every(60000, tr);
if (!SD.begin(PIN_CS)) {
Serial.println("SD-card not found"); return;
}
}
void loop() {
color();
Serial.print(" RED :" + String(red));
Serial.print(" GREEN : " + String(green));
Serial.println(" BLUE : " + String(blue));
//Serial.println();
int second, minute, hour, date, month, year, temperature;
second = Clock.getSecond();
minute = Clock.getMinute();
hour = Clock.getHour(h12, PM);
date = Clock.getDate();
month = Clock.getMonth(Century);
year = Clock.getYear();
temperature = Clock.getTemperature();
timer.update();
delay(1000);
}
void color()
{
// если 11 и 12 порты отключить, то мы получим красный цвет
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
// если 11 порт включить, а 12 отключить, то синий
digitalWrite(s3, HIGH);
blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
// если 12 включить, а 11 отключить, то зеленый
digitalWrite(s2, HIGH);
green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
}
void tr ()
{
String filename;
static int number;
int i = 0;
filename = "file_";
filename += number++;
filename += ".txt";
//Serial.println(filename);
File myFile = SD.open(filename, FILE_WRITE );
do {
//Serial.println(filename);
myFile.print("20");
myFile.print(Clock.getYear(), DEC);
myFile.print('-');
myFile.print(Clock.getMonth(Century), DEC);
myFile.print('-');
myFile.print(Clock.getDate(), DEC);
myFile.print(' ');
myFile.print(Clock.getHour(h12, PM), DEC);
myFile.print(':');
myFile.print(Clock.getMinute(), DEC);
myFile.print(':');
myFile.print(Clock.getSecond(), DEC);
myFile.print(' ');
myFile.print("R Intensity:");
myFile.print(255-red, DEC);
myFile.print(" G Intensity: ");
myFile.print(255-green, DEC);
myFile.print(" B Intensity : ");
myFile.println(255-blue, DEC);
delay(1000);
i++;
} while (i<60);
do {
i=i-i;
}while ( i = 0);
myFile.close(); // закрытие файла "iarduino.txt":
}
int s0 = 8;
int s1 = 9;
int s2 = 2;
int s3 = 7;
int out = 10;
int red = 0;
int green = 0;
int blue = 0;
void setup()
{
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
pinMode(out, INPUT);
Serial.begin(9600);
digitalWrite(s0, HIGH);
digitalWrite(s1, HIGH);
}
void loop()
{
color();
// выводим значения цветов
Serial.print(" RED :" + String(red));
Serial.print(" GREEN : " + String(green));
Serial.println(" BLUE : " + String(blue));
delay(500);
}
void color()
{
// если 11 и 12 порты отключить, то мы получим красный цвет
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
// если 11 порт включить, а 12 отключить, то синий
digitalWrite(s3, HIGH);
blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
// если 12 включить, а 11 отключить, то зеленый
digitalWrite(s2, HIGH);
green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
}