我们现在可以上传实际的代码运行在底部的Arduino。
可以复制和粘贴以下代码到Arduino IDE或下载并打开它。
/* Code for Automatic Blind BOTTOM ARDUINO -- by DIYtronics: <a href="https://www.instructables.com/member/diytronics/"> <a href="https://www.instructables.com/member/diytronics/"> https://www.instructables.com/member/diytronics/
</a>
</a>
* Using Adafruit TCS34725 colour sensor library : <a href="https://github.com/adafruit/Adafruit_TCS34725"> <a href="https://www.instructables.com/member/diytronics/"> https://www.instructables.com/member/diytronics/
</a>
</a>
*/
#include <Wire.h>
#include "Adafruit_TCS34725.h"
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Variables
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
int redreading;
int greenreading;
int bluereading;
int clearreading;
int reading;
int redstripvalue;
int greenstripvalue;
int materialvalue;
int tolerance;
int materialcolour;
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_700MS, TCS34725_GAIN_1x);//初始化颜色传感器
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/设置
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
无效setup() {
系列。开始(9600);//串口设置
而(!串行){
;/ /等待串口连接。需要USB
}
pinmode(4,输出);//定义引脚
pinmode(5,输出);
digitalwrite(4,低);
digitalwrite(5,低);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/值
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
;/替换值红带读< ------------------------------------------------------------------------------ / .......... redstripvalue =
;/替换值绿色条阅读<< ------------------------------------------------------------------------------ / .......... greenstripvalue =
;/ /更换材料的阅读价值< ------------------------------------------------------------------------------ .......... materialvalue =
materialcolour = ..........;/ /更换点:redreading,greenreading,bluereading或clearreading所依赖的颜色你的盲材料阅读-------------------------------------------------------------------
公差= ..........;/ /替换点与公差(通常300)< ------------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
无效loop() {
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/值
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
阅读= ..........;/ /更换点:redreading,greenreading,bluereading或clearreading依赖于它的颜色你带读数来自<< ------------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Loop
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
uint16_t c, r, g, b;
tcs.getRawData(&r, &g, &b, &c);
redreading = r, DEC;
greenreading = g, DEC;
bluereading = b, DEC;
clearreading = c, DEC;
if(reading > (redstripvalue - tolerance)){ //If the value from the colour sensor is under the max limit for red, but over the min limit for red, it must be red
if (reading < (redstripvalue + tolerance)){
Serial.println("Red Detected");
digitalWrite(4, HIGH); //Set pins accordingly
digitalWrite(5, LOW);
}
}
if (reading > (greenstripvalue - tolerance)){ //If the value from the colour sensor is under the max limit for green, but over the min limit for green, it must be green
if (reading < (greenstripvalue + tolerance)){
Serial.println("Green Detected");
digitalWrite(4, LOW); //Set pins accordingly
digitalWrite(5, HIGH);
}
}
if (materialc颜色>(materialvalue容忍)){ //如果材料值检测,设置相应的
digitalwrite引脚(4、低);
digitalwrite(5,低);
}