最好的电子音响科技diy制作网站

haoDIY_音响电子电脑科技DIY小制作发明

可编程自动盲开瓶器(7)

时间:2017-05-18 10:39来源:未知 作者:admin 点击:
我们现在已经收集了价值为每个颜色的条带,以及盲目的材料。 现在我们将把价值转化为代码,颜色传感器可以告诉它是什么看。 这段代码可以看一个从传感器来的值(R,G,B或C)。 为带不同的颜色,一定会对某些条高值
可编程自动盲开瓶器

我们现在已经收集了价值为每个颜色的条带,以及盲目的材料。现在我们将把价值转化为代码,颜色传感器可以告诉它是什么看。

这段代码可以看一个从传感器来的值(R,G,B或C)。为带不同的颜色,一定会对某些条高值。例如,红色的价值就高了很多,在红带比绿色的条。因此,我们只需要看看一个值为绿色和红色是对立的色彩,因此,红色和绿色的值将是相同的在一个红色的物体,例如。

首先,看值记录你从每一条上一步。

我们现在需要找到红色和绿色带读数之间的差异大。

比较并写出红、绿两条带之间的差异,蓝色和透明值(减去任何值从大值小)。

然后写下这两个数的<strong>最大的</strong>区别,以及颜色的值来自。

例如,我的最大的不同是在绿色价值观,如上图所示,我会写“4780绿条和3039条(红色,绿色价值)”。

步骤46:底Arduino的代码

我们现在可以上传实际的代码运行在底部的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,低);
 } 
 
  • 可编程自动盲开瓶器bottom_arduino_code_blind_opener_diytronics.ino
    下载

步骤47:颜色传感器的代码

可编程自动盲开瓶器

在代码中你刚刚下载/复制,有6个变量,需要修改,所有标有代码中的一个大箭头(< ------------)使它更容易找到他们(注意,第六个变量是略低)。

注意:更换点时,不小心删除分号()!

 

第一个变量是redstripvaluegreenstripvalue

这两个变量,只需更换点代码中的每个变量的差异最大的两个数字,你在上一步中发现。确保从红带的价值去红带变,从绿色带去绿色带变量的值。

第三个变量materialvalue

此变量,取代点无论是你之前的记录为盲材料的最高值(我们称之为“正常的”)。

第四个变量materialcolour

更换点哪个颜色(<strong>R</strong> <strong>edreading</strong> <strong>greenreading</strong>红色,绿色,蓝色或<strong>clearreading</strong> <strong>bluereading</strong>清楚)你只用于最高盲材料价值(第三项)。

第五个变量容忍

这个变量调整边界的颜色检测。更换点与300号。我增加了这个功能,如果你有任何问题,颜色传感器。如果是难以分辨颜色,减少100的增量值。同样的,如果有麻烦的颜色,增加100的增量数。

最后的变量阅读

简单地代替这两者(<strong>redreading</strong>颜色为红色,<strong>greenreading</strong>绿色、蓝色或<strong>clearreading</strong> <strong>bluereading</strong>清楚)你用不同颜色条(变量1和2)。

上传

确保保存代码并点击“编译”按钮(在左上打勾)或按Ctrl键+R确保Arduino是连接电脑和正确的COM端口和Arduino的选型(这应该已经完成了),上传的代码。

步骤48:代码上传

我们现在准备上传代码的最后一位!

首先,下载的代码在这一步的底部找到,或者复制下面的框。

/ * 
 **这个例子使用F马尔帕蒂达的newliquidcrystal图书馆。获得:
 * < a href =“http:/ / Bitbucket. org / fmalpartida /新液晶”> HTTPS:/ / Bitbucket. org / fmalpartida /新liquidcryst…</a> 
 * 
 *也rtclib基于< a href =“http:/ / GitHub。COM / Adafruit / rtclib”> HTTPS:/ / Bitbucket. org / fmalpartida /新liquidcryst…</a> 
 * 
 *写的diytronics:< a href =“http:/ / www.instructables。COM /会员/ diytronics /”> HTTPS:/ / Bitbucket. org / fmalpartida /新liquidcryst…</一> 
 * / 
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
 /库包含:
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
 
 #包括<<丝。”
 #包括<液晶。”
 #包括<< liquidcrystal_i2c。H > 
 #包括“rtclib。H”
 rtc_ds3231 RTC;
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
 /液晶在实例
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
 
DDR    0x27 
#define BACKLIGHT_PIN     3
#define En_pin  2
#define Rw_pin  1
#define Rs_pin  0
#define D4_pin  4
#define D5_pin  5
#define D6_pin  6
#define D7_pin  7

LiquidCrystal_I2C  lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Variable Declerations
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
int seconds;
int minutes;
int hours;
int menu;
int upminutesa = 0;
int uphoursa = 0;
int dwnminutesa = 0;
int dwnhoursa = 0;
int setupminutesa = 0;
int setuphoursa = 0;
int setdwnminutesa = 0;
int setdwnhoursa = 0;
int upminutesb = 0;
int uphoursb = 0;
int dwnminutesb = 0;
int dwnhoursb = 0;
int setupminutesb = 0;
int setuphoursb = 0;
int setdwnminutesb = 0;
int setdwnhoursb = 0;
int active = 1;
int selcounter;
int senseLED = 3;
int rval;
int gval;
int bval;
int minup;
int hourup;
int mindwn;
int hourdwn;
int blindposi应用= 0;
 int redreading;
 int greenreading;
 int bluereading;
 int起来;
 int DWN;
 INT SEL;
 int ESC;
 int prevup =高;
 int prevdwn =高;
 int prevsel =高;
 int disprelay = 7;
 int TIMEC;
 int setcounter;
 int setcountera;
 int计数器;
 int greenstate;
 int RedState;
 int状态= 1;
 int trigcounter;
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
 /按钮引脚
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
 
 int扣件= 12;
 int buttondwn = 11;
 int buttonsel = 10;
 int buttonesc = 9;
 int计数器= 0;
 int dwncounter = 0;
 int esccounter = 0;
 
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
 / /其他定义
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
 int功率= 6;
      
      (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
相关文章
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片