Difference between revisions of "Team:Newcastle/Circuitry"

 
(83 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{Newcastle/navbar}}
+
{{Newcastle/navbar2}}
 
<html>
 
<html>
  
Line 20: Line 20:
 
     <!-- home
 
     <!-- home
 
     ================================================== -->
 
     ================================================== -->
     <section id="home" class="s-home target-section" data-parallax="scroll" data-image-src="https://static.igem.org/mediawiki/2018/thumb/0/06/T--Newcastle--Hardware11.jpg/800px-T--Newcastle--Hardware11.jpg" data-natural-width=3000 data-natural-height=2000 data-position-y=center>
+
     <section id="home" class="s-home target-section" data-parallax="scroll" data-image-src="https://static.igem.org/mediawiki/2018/b/ba/T--Newcastle--WC230718.png">
  
 
         <div class="overlay"></div>
 
         <div class="overlay"></div>
Line 37: Line 37:
  
 
                 <div class="home-content__buttons">
 
                 <div class="home-content__buttons">
                     <a href="#design" class="smoothscroll btn btn--stroke">
+
                     <a href="#powering" class="smoothscroll btn btn--stroke">
                         Guide
+
                         Power
 
                     </a>
 
                     </a>
                     <a href="#gallery" class="smoothscroll btn btn--stroke">
+
                     <a href="#control" class="smoothscroll btn btn--stroke">
                         Gallery
+
                         Control
 +
                    </a>
 +
                    <a href="#LED_wiring" class="smoothscroll btn btn--stroke">
 +
                        LED wiring
 
                     </a>
 
                     </a>
 
                 </div>
 
                 </div>
Line 47: Line 50:
 
             </div>
 
             </div>
  
            <div class="home-content__scroll">
 
                <a href="#design" class="scroll-link smoothscroll">
 
                    <span>Scroll Down</span>
 
                </a>
 
            </div>
 
 
            <div class="home-content__line"></div>
 
  
 
         </div> <!-- end home-content -->
 
         </div> <!-- end home-content -->
Line 61: Line 57:
 
================================================== -->
 
================================================== -->
  
     <section id='Powering' class="s-about">
+
     <section id='powering' class="s-about">
  
 
         <div class="row section-header has-bottom-sep" data-aos="fade-up">
 
         <div class="row section-header has-bottom-sep" data-aos="fade-up">
 
             <div class="col-full">
 
             <div class="col-full">
 
                 <h3 class="subhead subhead--dark">Stage One</h3>
 
                 <h3 class="subhead subhead--dark">Stage One</h3>
                 <h1 class="display-1 display-1--light">Powering</h1>
+
                 <h1 class="display-1 display-1--light"><font color="Black">Powering</font></h1>
 
             </div>
 
             </div>
 
         </div> <!-- end section-header -->
 
         </div> <!-- end section-header -->
Line 72: Line 68:
 
         <div class="row about-desc" data-aos="fade-up">
 
         <div class="row about-desc" data-aos="fade-up">
 
             <div class="col-full">
 
             <div class="col-full">
                <p class="about-para">There is two options for powering this device via the mains or from a battery source. I have designed it so both can be used if the other isn’t available. However I would recommend using the mains as batteries need to be replaced regularly. Since the Arduino and LED lights need a constant 5V supply once the batteries have drained to roughly 3.5V the lights start to fade and do not operate as designed. Also we used 4 cheap AA 1.5V which totals to 6V, meaning a voltage regulator is needed to protect the circuit. This regulator can get hot after sustained use, I believe this is due to the lights drawing 1.5 Amps. However for a small demonstration this is sufficient.
 
Therefor a more permanent and reliable source would be the mains. Taking a regular phone charger which safely steps the voltage down to 5V we have a power source for the Arduino to use. I would not recommend building your own. Usually there is live (Vdd), ground (GND), and two data lines (-D, +D) the latter two are not necessary for our application. Due to there voltage rating shown in Figure 1.0 (2.76V, 2.06V). Therefor these wires can be either trimmed shorter than Vdd and GND or taped up, to avoid a short circuit.
 
When powering the Arduino a capacitor is needed to put in parallel, this protects it from surges in voltage which could otherwise damage it.
 
</p>
 
  
<style>
+
<head>
+
                <p class="about-para">When creating an electrical circuit there needs to be a decision made for as to how this system is powered. There are two options available: mains (AC), or battery (DC). To increase the flexibility of the system it was designed to be able to use both power sources; however, we recommend the use of mains power due to the limited capacity of batteries. The Arduino and LED lights draw a constant 5 V, therefore the system requires at least four 1.5 V AA batteries, giving a nominal 6 V. To protect the circuit this would require a voltage regulator, which can overheat with a sustained 1.5 A current drawn for the LEDs.  Given the constant drain on the batteries, the system does not perform well when the supply voltage drops below 3.5 V. To address this problem, we adapted a regular USB phone charger, which safely steps down mains to 5 V. We do not recommend building your own version of this!<p>
* {
+
    box-sizing: border-box;
+
}
+
  
.column {
+
<p class="about-para">In a phone charger cable there are usually four wires; live (Vdd), ground (GND), and two data lines (-D, +D). The latter two are not necessary for our application due to their voltage rating, shown in Figure 1A (2.76V, 2.06V). Therefore, these wires can be either trimmed shorter than Vdd and GND or taped up, to avoid a short circuit in the system. For the example shown in Figure 1B; red is power, black is ground, white and green wires are the data lines, however it is good practice to confirm this is by checking the voltage from Vdd, D+ or D- to ground with a multi-meter.</p>
    float: left;
+
    width: 33.33%;
+
    padding: 5px;
+
}
+
  
/* Clearfix (clear floats) */
+
                <p class="about-para">When powering the Arduino, a capacitor is needed in parallel to protect it from surges in voltage, which could otherwise damage it. In order to protect the LED lights, there needs to be small 330 Ω resistor on the data line. A circuit diagram can be found in Figure 1C, which details the correct set up.</p>
.row::after {
+
    content: "";
+
    clear: both;
+
    display: table;
+
}
+
</style>
+
</head>
+
<body>
+
  
      <div class="row">
+
                    <p class="about-para">The LEDs used also took a 5V DC power supply, which was one of the justifications for using this particular product, as it means that they can be powered from the same source as the Arduino.</p>
 +
</div>
 +
</div>
  
             <div class="column" data-aos="fade-up">
+
      <div class="row services-list block-1-3 block-tab-full">
 +
 
 +
             <div class="col-block service-item" data-aos="fade-up">
 +
                <div class="service-icon">
 +
                    <i class="icon-paint-brush"></i>
 +
                </div>
 
                 <div class="service-text">
 
                 <div class="service-text">
                     <img src="https://static.igem.org/mediawiki/2018/a/a5/T--Newcastle--usb_schematic2.png" style="width:33.3%">
+
                     <img src="https://static.igem.org/mediawiki/2018/a/a5/T--Newcastle--usb_schematic2.png" style="width:100%">
                     <p style="Text Align:33.3%r"><br>Figure 1.0; Schematic of a standard USB cable </p>
+
                     <p style="text-align:center"><br>Figure 1A. Schematic of a standard USB cable [1].</p>
 
                 </div>
 
                 </div>
</div>
+
            </div>
+
            <div class="col" data-aos="fade-up">
+
  
 +
            <div class="col-block service-item" data-aos="fade-up">
 +
                <div class="service-icon">
 +
                    <i class="icon-paint-brush"></i>
 +
                </div>
 
                 <div class="service-text">
 
                 <div class="service-text">
                     <img src="https://static.igem.org/mediawiki/2018/8/8e/T--Newcastle--wire.png" style="width:33.3%">
+
                     <img src="https://static.igem.org/mediawiki/2018/8/8e/T--Newcastle--wire.png" style="width:100%">
                     <p style="Text Align:33.3%"><br>Figure 1.1; Above is an example of 4 exposed wires. Red is power, black is ground, and the white and green wires are the data lines.</p>
+
                     <p style="text-align:center"><br>Figure 1B. Above is 4 exposed wires. Red is power, black is ground,white and green are the data lines [1].</p
 +
                   
 +
                </div>
 +
            </div>
 +
            <div class="col-block service-item" data-aos="fade-up">
 +
                <div class="service-icon">
 +
                    <i class="icon-paint-brush"></i>
 
                 </div>
 
                 </div>
</div>
 
 
            <div class="col" data-aos="fade-up">
 
 
 
                 <div class="service-text">
 
                 <div class="service-text">
                     <img src="https://static.igem.org/mediawiki/2018/1/1d/T--Newcastle--arduino.png" style="width:33.3%">
+
                     <img src="https://static.igem.org/mediawiki/2018/1/1d/T--Newcastle--arduino.png" style="width:100%">
                     <p style="Text Align:33.3%"><br>The finished product, set to a rainbow function that cycles through various wavelengths of light</p>
+
                     <p style="text-align:center"><br>Figure 1C. Schematic demonstrating how to power the Arduino and the LED's, made on fritzing [2].</p>
 +
                   
 
                 </div>
 
                 </div>
 
             </div>
 
             </div>
 
         </div>        <!-- end services-list -->
 
         </div>        <!-- end services-list -->
 
      </div>
 
        </div> <!-- end project-desc -->
 
  
 
         <div class="row about-stats stats block-1-4 block-m-1-2 block-mob-full" data-aos="fade-up">
 
         <div class="row about-stats stats block-1-4 block-m-1-2 block-mob-full" data-aos="fade-up">
Line 147: Line 133:
 
                 <div class="stats__count">1700</div>
 
                 <div class="stats__count">1700</div>
 
                 <h5>LUX OF LIGHT</h5>
 
                 <h5>LUX OF LIGHT</h5>
                 <h5>TO GROW SEEDS</h5>
+
                 <h5>TO GROW SEEDLINGS</h5>
 
             </div>
 
             </div>
 
             <div class="col-block stats__col">
 
             <div class="col-block stats__col">
Line 153: Line 139:
 
                 <div class="stats__count">120</div>
 
                 <div class="stats__count">120</div>
 
                 <h5>INDIVIDUALLY ADDRESSABLE</h5>
 
                 <h5>INDIVIDUALLY ADDRESSABLE</h5>
                 <h5>LOW-POWER LED'S</h5>
+
                 <h5>LOW-POWER LEDS</h5>
 
             </div>
 
             </div>
  
 
         </div> <!-- end about-stats -->
 
         </div> <!-- end about-stats -->
  
        <div class="about__line"></div>
+
   
  
 
     </section> <!-- end s-about -->
 
     </section> <!-- end s-about -->
Line 166: Line 152:
  
  
  <section id='Control' class="s-services">
+
  <section id='control' class="s-services">
  
 
         <div class="row section-header has-bottom-sep" data-aos="fade-up">
 
         <div class="row section-header has-bottom-sep" data-aos="fade-up">
Line 179: Line 165:
  
 
                      
 
                      
                    <p style="font-size:100%">There was a number of ideas on how to control the day and night cycle (16-8 hours), one method would break the circuit from the ‘Vdd’ line (power line). We decided to pursue this method as we were under the impression this would reduce the power consumption when the night cycle was in effect. </p>
+
<p style="font-size:100%">Stage two of the build was to be able to control the day and night cycle (16-8 hours) to allow proper plant growth. One method to implement this would be to break the circuit from the ‘Vdd’ line (power line). We decided to pursue this method as it would reduce the power consumption when the night cycle was in effect.</p>
                     <p style="font-size:100%">In order to break the power line needs to be two pin outs, pin 11 for the data line and 12 for the switching circuit. 11 determines the light intensity and function of the lights. After a 16 hour cycle pin 12 is written to ‘LOW’ (logic zero), which turns the N channel power MOSFET off for 6 hours. This sequence repeats every day. The code can be seen in <a href="https://2018.igem.org/Team:Newcastle/Code">here.</a></p>
+
                     <p style="font-size:100%">In order to break the power line there needs to be two pin outs, pin 11 for the data line and 12 for the switching circuit. 11 determines the light intensity and function of the lights. After a 16 hour cycle pin 12 is written to ‘LOW’ (logic zero), which turns a N channel power MOSFET off for 6 hours. This sequence would repeat every day.
                     <p style="font-size:100%">There was some issues when implementing this design. Which appeared to be caused by the Arduinos pin out voltage, 3.3V. Going of the MOSFET’s data sheet the threshold is between 1-2V [1]. Therefor for our purpose it should be adequate however the voltage at the source (MOSFET) was measured to be 3V, the LED’s need at least 4.2V.</p>
+
                     <p style="font-size:100%">We encountered  some issues when implementing this design, which appeared to be caused by the Arduino’s pin out voltage of 3.3V. Despite the MOSFET’s threshold voltage being between 1-2V [3], it should be adequate. However, the voltage at the source (MOSFET output) was measured to be 3V, and the LEDs need at least 4.2V.</p>
                   <p style="font-size:100%">Meaning we had to go back to the drawing board secondly, we looked at using a NAND gate. There is a truth table included to describe the function.</p>
+
                   <p style="font-size:100%">This meant that we had to go back to the drawing board. Our second iteration was based on a NAND gate; the truth table shown below illustrates the function of the gate.</p>
  
 
<head>
 
<head>
Line 225: Line 211:
 
   </tr>
 
   </tr>
 
</table>
 
</table>
                 <p style="font-size:100%">Highlighted in red is the two functions we are interested in. Since ‘Vdd’ will always be read as ‘high’, 5V. We can eliminate the first two states and ‘Vdd’ making the logic straightforward. The basic operation is inverting P12 logic. This method worked in theory however in practice the LED’s demanded too much current up to 2A, leading the gate to heat up to an unsustainable level. Thirdly we attempted to implement a relay switch however this was also limited on current.  
+
                 <p style="font-size:100%">Highlighted in red are the two functions we are interested in. Since ‘Vdd’ will always be read as ‘high’, 5V, we can eliminate the first two states. The basic operation is inverting P12 logic. When implemented in our device, the logic worked as predicted; however, the 2A current demand of the LEDs caused the gate to heat up and become unstable in its operation. Iteration three involved the implementation of a relay switch; however, this was also limited in terms of the current drawn and overheated. In our final iteration we discovered we could achieve the desired result through the code. Changing the brightness from a defined integer, to an 8 bit integer, allowing a range between 0-255. Setting the brightness to ‘0’ would turn the LEDs off. The code can be seen<body link="blue"><a href="https://2018.igem.org/Team:Newcastle/Software/NH1" class="black"> here.</a></p></body>
Finally, we discovered we can achieve the desired result through the code. Changing the brightness from a defined integer, to an 8 bit integer allowing a range between 0-255. Setting the brightness to ‘0’ would turn the LED’s off.</p>
+
 
  
 
                 </div>
 
                 </div>
Line 239: Line 225:
 
                 <div class="service-text">
 
                 <div class="service-text">
 
                     <img src="https://static.igem.org/mediawiki/2018/b/ba/T--Newcastle--WC230718.png">
 
                     <img src="https://static.igem.org/mediawiki/2018/b/ba/T--Newcastle--WC230718.png">
                     <p style="text-align:center"><br>The engineers, hard at work trying to troubleshoot issues with the system.</p>
+
                     <p style="text-align:center"><br>Figure 2A. The engineers, hard at work trying to troubleshoot issues with the system.</p>
 
                      
 
                      
 
                      
 
                      
Line 251: Line 237:
 
                 <div class="service-text">
 
                 <div class="service-text">
 
                     <img src="https://static.igem.org/mediawiki/2018/thumb/e/e5/T--Newcastle--Hydroponicssystem.jpeg/800px-T--Newcastle--Hydroponicssystem.jpeg">
 
                     <img src="https://static.igem.org/mediawiki/2018/thumb/e/e5/T--Newcastle--Hydroponicssystem.jpeg/800px-T--Newcastle--Hydroponicssystem.jpeg">
                     <p style="text-align:center"><br>The finished product, set to a rainbow function that cycles through various wavelengths of light</p>
+
                     <p style="text-align:center"><br>Figure 2B. The finished product, set to a rainbow function that cycles through various wavelengths of light</p>
 
                      
 
                      
 
                      
 
                      
Line 263: Line 249:
 
================================================== -->
 
================================================== -->
  
     <section id='LED Wiring' class="s-works">
+
     <section id='LED_wiring' class="s-works">
  
 
         <div class="intro-wrap">
 
         <div class="intro-wrap">
Line 271: Line 257:
 
                     <h3 class="subhead">Stage Three</h3>
 
                     <h3 class="subhead">Stage Three</h3>
 
                     <h1 class="display-2 display-2--light">LED Wiring</h1>
 
                     <h1 class="display-2 display-2--light">LED Wiring</h1>
                    <font size="4" font face="verdana" font color="green">Substantial time was spent carrying out extensive research, both inside and outside the lab, in order to optimise the system for the target audience. This included speaking with organisations and individuals in industry who are involved with hydroponics-based systems or those who may be interested in working with such a system in the future. Some of the individuals we liaised with include Chris Tapsell, the Research Director of KWS UK, one of the biggest seed companies in the world, and Richard Ballard, co-founder of Growing Underground in London where they hydroponically grow micro greens and salad leaves 33 metres below the ground. These potential clients helped us focus our product so that it can better meet the needs of our clients.</font><br><br>
+
 
                    <font size="4" font face="verdana" font color="green">In addition to gathering external opinion on our system, we also did our own tests on system performance. This included tests to verify the optimal light intensity, wavelength and positioning. The graph below illustrates how the light intensity (measured in lux) varies over time (in seconds) when the system is operated under various wavelengths of light. The black line indicates the system running with the rainbow function loaded which cyclically varies the light wavelength. As the results showed that blue, red and purple light and provided the most lux we are currently using these in the system but plan to use the rainbow function too in future to see how this affects growth or the aesthetics of the plant.
+
                  <p><font size="4" font face="verdana" font color="green">The final device has 5 LED strips spaced equally across the lid to give a constant light level for the seeds. These strips are connected in parallel to one another, which means they are in sync with one another. From the point of view of the LEDs the data line (pin 11) appears the same. In order to allow the lid to be removable we fed the wires through a hole on the side of the lid, which was soldered onto a vero-board where a crimp housing was connected. Allowing us to unplug the lid and remove it when the hydroponic solution was added. This reduces the potential for water damage to the lid. As an extra precaution, we insulated the exposed metal contacts on the LEDs and vero-boards, with a hot glue gun which also adds structural security.</font></p>
<br><br>
+
 
</font>
+
 
<img src="https://static.igem.org/mediawiki/2018/thumb/4/4f/T--Newcastle--Hardware14.jpg/450px-T--Newcastle--Hardware14.jpg">
 
<img src="https://static.igem.org/mediawiki/2018/thumb/4/4f/T--Newcastle--Hardware14.jpg/450px-T--Newcastle--Hardware14.jpg">
 +
          <p style="text-align:center"><font color="green"><br>Figure 3.0; Image of parallel wiring layout and insulated contacts</p>
 
                 </div>
 
                 </div>
 
             </div> <!-- end section-header -->
 
             </div> <!-- end section-header -->
  
        </div> <!-- end intro-wrap -->
 
    </section> <!-- end s-works -->
 
  
 +
      <!-- PI's
 +
    ================================================== -->   
 +
    <section id='team' class="s-services">
  
  
<!-- Java Script
+
        <div class="row section-header has-bottom-sep" data-aos="fade-up">
 +
                <div class="col-full">
 +
                            <br>
 +
<br>
 +
<br>
 +
<br>
 +
<h3 class="subhead"></h3>
 +
                <h1 class="display-2">References & Attributions</h1>
 +
            </div>
 +
 
 +
        </div>
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
             
 +
       
 +
 
 +
<button class="collapsible">Click for References & Attributions</button>
 +
<div class="content">
 +
              <div class="row about-desc" data-aos="fade-up">
 +
                <div class="col-full">
 +
 
 +
<p class="about-para"><font size="3"><b>Attributions: Luke Waller, Umar Farooq</b></p>
 +
 
 +
                  <p><font size="3"><b>1.</b> Ada Fruit, "icharging", 5 Aug 2010; 'https://learn.adafruit.com/minty-boost/icharging', 5 Aug 2010.</p>
 +
 
 +
<p><font size="3"><b>2.</b> Arduino Basics; 2 Jul 2015, https://arduinobasics.blogspot.com/2015/07/neopixel-playground.html </p>
 +
 
 +
 
 +
<p><font size="3"><b>3.</b> Rapid; 'https://www.rapidonline.com/pdf/162663_da_en_01.pdf' </p>
 +
 
 +
 
 +
 
 +
                   
 +
 
 +
</div>
 +
</section>
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
    <!-- Java Script
 
     ================================================== -->
 
     ================================================== -->
 
     <script type="text/javascript" src="https://2018.igem.org/Template:Newcastle/JSjquery?
 
     <script type="text/javascript" src="https://2018.igem.org/Template:Newcastle/JSjquery?
Line 291: Line 329:
 
     action=raw&ctype=text/javascript"></script>     
 
     action=raw&ctype=text/javascript"></script>     
 
     <script type="text/javascript" src="https://2018.igem.org/Template:Newcastle/JSmain?
 
     <script type="text/javascript" src="https://2018.igem.org/Template:Newcastle/JSmain?
     action=raw&ctype=text/javascript"></script>   
+
     action=raw&ctype=text/javascript"></script>  
 +
    <script>
 +
var coll = document.getElementsByClassName("collapsible");
 +
var i;
 +
 
 +
for (i = 0; i < coll.length; i++) {
 +
  coll[i].addEventListener("click", function() {
 +
    this.classList.toggle("active");
 +
    var content = this.nextElementSibling;
 +
    if (content.style.maxHeight){
 +
      content.style.maxHeight = null;
 +
    } else {
 +
      content.style.maxHeight = content.scrollHeight + "px";
 +
    }
 +
  });
 +
}
 +
</script>
 +
 
 +
<script>
 +
var slideIndex = 1;
 +
showSlides(slideIndex);
 +
 
 +
function plusSlides(n) {
 +
  showSlides(slideIndex += n);
 +
}
 +
 
 +
function currentSlide(n) {
 +
  showSlides(slideIndex = n);
 +
}
 +
 
 +
function showSlides(n) {
 +
  var i;
 +
  var slides = document.getElementsByClassName("mySlides");
 +
  var dots = document.getElementsByClassName("dot");
 +
  if (n > slides.length) {slideIndex = 1;}   
 +
  if (n < 1) {slideIndex = slides.length;}
 +
  for (i = 0; i < slides.length; i++) {
 +
      slides[i].style.display = "none";  
 +
  }
 +
  for (i = 0; i < dots.length; i++) {
 +
      dots[i].className = dots[i].className.replace(" active", "");
 +
  }
 +
  slides[slideIndex-1].style.display = "block"; 
 +
  dots[slideIndex-1].className += " active";
 +
}
 +
</script>
  
 +
</body>
  
 
</html>
 
</html>
 
{{Newcastle/footer}}
 
{{Newcastle/footer}}

Latest revision as of 00:15, 18 October 2018

Alternative Roots/Circuitry

Alternative Roots

Circuitry

Stage One

Powering

When creating an electrical circuit there needs to be a decision made for as to how this system is powered. There are two options available: mains (AC), or battery (DC). To increase the flexibility of the system it was designed to be able to use both power sources; however, we recommend the use of mains power due to the limited capacity of batteries. The Arduino and LED lights draw a constant 5 V, therefore the system requires at least four 1.5 V AA batteries, giving a nominal 6 V. To protect the circuit this would require a voltage regulator, which can overheat with a sustained 1.5 A current drawn for the LEDs. Given the constant drain on the batteries, the system does not perform well when the supply voltage drops below 3.5 V. To address this problem, we adapted a regular USB phone charger, which safely steps down mains to 5 V. We do not recommend building your own version of this!

In a phone charger cable there are usually four wires; live (Vdd), ground (GND), and two data lines (-D, +D). The latter two are not necessary for our application due to their voltage rating, shown in Figure 1A (2.76V, 2.06V). Therefore, these wires can be either trimmed shorter than Vdd and GND or taped up, to avoid a short circuit in the system. For the example shown in Figure 1B; red is power, black is ground, white and green wires are the data lines, however it is good practice to confirm this is by checking the voltage from Vdd, D+ or D- to ground with a multi-meter.

When powering the Arduino, a capacitor is needed in parallel to protect it from surges in voltage, which could otherwise damage it. In order to protect the LED lights, there needs to be small 330 Ω resistor on the data line. A circuit diagram can be found in Figure 1C, which details the correct set up.

The LEDs used also took a 5V DC power supply, which was one of the justifications for using this particular product, as it means that they can be powered from the same source as the Arduino.


Figure 1A. Schematic of a standard USB cable [1].


Figure 1B. Above is 4 exposed wires. Red is power, black is ground,white and green are the data lines [1].


Figure 1C. Schematic demonstrating how to power the Arduino and the LED's, made on fritzing [2].

ROUGHLY
2
AMPS ARE PULLED
FOR THE WHOLE SYSTEM
APPROXIMATELY
70
KWH OF POWER ANNUALLY
USED TO POWER SYSTEM
PROVIDES UP TO
1700
LUX OF LIGHT
TO GROW SEEDLINGS
CONTAINS
120
INDIVIDUALLY ADDRESSABLE
LOW-POWER LEDS
================================================== -->

Stage Two

Control

Stage two of the build was to be able to control the day and night cycle (16-8 hours) to allow proper plant growth. One method to implement this would be to break the circuit from the ‘Vdd’ line (power line). We decided to pursue this method as it would reduce the power consumption when the night cycle was in effect.

In order to break the power line there needs to be two pin outs, pin 11 for the data line and 12 for the switching circuit. 11 determines the light intensity and function of the lights. After a 16 hour cycle pin 12 is written to ‘LOW’ (logic zero), which turns a N channel power MOSFET off for 6 hours. This sequence would repeat every day.

We encountered some issues when implementing this design, which appeared to be caused by the Arduino’s pin out voltage of 3.3V. Despite the MOSFET’s threshold voltage being between 1-2V [3], it should be adequate. However, the voltage at the source (MOSFET output) was measured to be 3V, and the LEDs need at least 4.2V.

This meant that we had to go back to the drawing board. Our second iteration was based on a NAND gate; the truth table shown below illustrates the function of the gate.

Vdd Pin 12 Output
0 0 1
0 1 1
1 0 1
1 1 1

Highlighted in red are the two functions we are interested in. Since ‘Vdd’ will always be read as ‘high’, 5V, we can eliminate the first two states. The basic operation is inverting P12 logic. When implemented in our device, the logic worked as predicted; however, the 2A current demand of the LEDs caused the gate to heat up and become unstable in its operation. Iteration three involved the implementation of a relay switch; however, this was also limited in terms of the current drawn and overheated. In our final iteration we discovered we could achieve the desired result through the code. Changing the brightness from a defined integer, to an 8 bit integer, allowing a range between 0-255. Setting the brightness to ‘0’ would turn the LEDs off. The code can be seen here.


Figure 2A. The engineers, hard at work trying to troubleshoot issues with the system.


Figure 2B. The finished product, set to a rainbow function that cycles through various wavelengths of light

================================================== -->

Stage Three

LED Wiring

The final device has 5 LED strips spaced equally across the lid to give a constant light level for the seeds. These strips are connected in parallel to one another, which means they are in sync with one another. From the point of view of the LEDs the data line (pin 11) appears the same. In order to allow the lid to be removable we fed the wires through a hole on the side of the lid, which was soldered onto a vero-board where a crimp housing was connected. Allowing us to unplug the lid and remove it when the hydroponic solution was added. This reduces the potential for water damage to the lid. As an extra precaution, we insulated the exposed metal contacts on the LEDs and vero-boards, with a hot glue gun which also adds structural security.


Figure 3.0; Image of parallel wiring layout and insulated contacts





References & Attributions

Attributions: Luke Waller, Umar Farooq

1. Ada Fruit, "icharging", 5 Aug 2010; 'https://learn.adafruit.com/minty-boost/icharging', 5 Aug 2010.

2. Arduino Basics; 2 Jul 2015, https://arduinobasics.blogspot.com/2015/07/neopixel-playground.html

3. Rapid; 'https://www.rapidonline.com/pdf/162663_da_en_01.pdf'