author
5Instructables14,834Views52CommentsAustraliaJoined June 3rd, 2015
I am a retired professional engineer, now farmer. Taking an interest in all things technological and in building devices useful on the farm.

Achievements

10K+ Views Earned a bronze medal
  • 1602 LCD Keypad Shield Module With I2C Backpack

    Yes of course you can base your code on mine in the instructable if you want to. That is one of the main reasons for publlishing it, so you can use it to hep you get going. If yo need any help with adding the DHT22 and relays, please do not hesitate to ask. Good luck and enjoy the project. Keith

    View Instructable »
  • 1602 LCD Keypad Shield Module With I2C Backpack

    Hello Col68, I am very pleased that my instructable has helped you, and I will be happy to help you with your next steps if you want. Can you share with me what temperature and humidity sensor or sensors you intend to use?

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 2 weeks ago
    Solar Powered WiFi Weather Station

    jroy6, You need to download and install this library. You can get it at:https://github.com/Seeed-Studio/Grove_BME280

    View Instructable »
  • 1602 LCD Keypad Shield Module With I2C Backpack

    You can get the LCD I2C library from here:http://www.arduinolibraries.info/libraries/liquid-...This is an Instructable about installing a library:https://www.instructables.com/id/How-to-Add-Arduin...If you have problems following these, please let me know.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 1 month ago
    Solar Powered WiFi Weather Station

    Multimeter is probably the most important test tool, vital for many projects. I am glad you found the essential problem, anyway. When you de-closet your multimeter, I suggest you attach it to the battery (you may need some clips or at least some way of connecting it without having to hold the leads in your hands) and watch the battery voltage, to see if it declines over a period of time - a few minutes, or a few hours. Have fun.Keith

    Do you have a multimeter so you can measure the voltage at various places? If so I suggest the following test sequencee:a) run the WeMos from the USB connector and measure the voltage at 5V and 3.3V pins (relative to GND of course). At the 5V pin you will probably get 4.7V or something close, and at the 3.3V pin you can expect to get exactly 3.3V.b) Measure the voltage at the battery terminals when it is disconnected. Expect about 4V.c) Connect the battery to the 5V pin of the Wemos (with USB unplugged) and measure the 2 WeMos voltages again. The 5V pin should be over 3.7V, the 3.3V should be 3.3V or a bit lower if the battery voltage is below 3.56 V.d) you can connect the battery directly to the 3.3V pin but there are some risks of device failure if the battery voltage is higher than ...

    see more »

    Do you have a multimeter so you can measure the voltage at various places? If so I suggest the following test sequencee:a) run the WeMos from the USB connector and measure the voltage at 5V and 3.3V pins (relative to GND of course). At the 5V pin you will probably get 4.7V or something close, and at the 3.3V pin you can expect to get exactly 3.3V.b) Measure the voltage at the battery terminals when it is disconnected. Expect about 4V.c) Connect the battery to the 5V pin of the Wemos (with USB unplugged) and measure the 2 WeMos voltages again. The 5V pin should be over 3.7V, the 3.3V should be 3.3V or a bit lower if the battery voltage is below 3.56 V.d) you can connect the battery directly to the 3.3V pin but there are some risks of device failure if the battery voltage is higher than 3.6V, which is the maximum value given in the data sheet. This link, https://forum.makehackvoid.com/t/esp8266-operatin... talks about going up to 4.7V. My guess is that up to 4.2V is probably fairly safe. Again you should measure the battery voltage when it is connected to the 3.3V pin. These tests will tell you if there is a problem with the battery, or not. Good luck! Keith

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 1 month ago
    Solar Powered WiFi Weather Station

    I had a look at using LCD. My earlier response was about Labelled Value. LCD is slightly different (but not much). The instructions for Labelled Value say to use /pin.##/ which does what I understand you want. The instructions for LCD in Simple mode are the same, but are actualy wrong. The correct format string is /pin0.##/ to get 2 decimal places on the first value. I have not tried it, but I think you need /pin1.##/ for 2 decimal places on the second value. By the way if you want the "degrees" symbol (a tiny circle near the top of the line) it is in the second page of special characters, accessed with the button labelled "=\<" just above the "ABC" button.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 1 month ago
    Solar Powered WiFi Weather Station

    I assume you are using Blynk. If you use a Labelled Value widget for each display, you can control the display format in the "label" field. For example if you write "Temp./pin.##/C" it will display with 2 digits after the decimal point. If you need more text than you can get in the default size widget, you can increase its size by touching the widget in edit mode for a few seconds, which then allows you to move it around and increase the size.

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    My pleasure. I will be interested to hear how you get on.

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Hi fstketch, easy to ask but the answer is a bit complicated and depends on several factors I don't know about your design and test conditions. If your test circuit is running in Continuous Current Mode (CCM) the Vs waveform will have two parts. One part (Panel phase) is at the panel voltage Vpp, minus the voltage drop across the high side components (mainly Q1 and Q2 in series). The other part is at Earth minus the voltage drop across the low side components (Q3 and D3 in parallel). The transitions between these may show some overshoot and other effects.If your test circuit is running in Discontinuous Current Mode (DCM) the Vs waveform will have 3 parts, Panel phase and Earth phase as for CCM, and then Null phase when Vs will be at the output voltage (battery Vbb). Again transitions ma...

    see more »

    Hi fstketch, easy to ask but the answer is a bit complicated and depends on several factors I don't know about your design and test conditions. If your test circuit is running in Continuous Current Mode (CCM) the Vs waveform will have two parts. One part (Panel phase) is at the panel voltage Vpp, minus the voltage drop across the high side components (mainly Q1 and Q2 in series). The other part is at Earth minus the voltage drop across the low side components (Q3 and D3 in parallel). The transitions between these may show some overshoot and other effects.If your test circuit is running in Discontinuous Current Mode (DCM) the Vs waveform will have 3 parts, Panel phase and Earth phase as for CCM, and then Null phase when Vs will be at the output voltage (battery Vbb). Again transitions may have some additional effects. This photo shows a sample DCM waveform with the 3 phases. From left to right you can see Panel phase, Earth phase, Null phase, then Panel phase again. The top trace is Vs. The bottom trace is a composite of IN and SDbar of the IR2104. I don't have a photo of a CCM trace.

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    To answer your question, Diode D3 is in parallel with Q3, which has an internal body diode. They both have the effect of preventing the inductor voltage (at the drain of Q3) going excessively negative. When Q2 turns off, the inductor current continues and will drive that drain voltage a long way negative unless it is prevented by these diodes. Really the diode D3 should be a Schottky type, rather than the UF4007. The diode only conducts for a short period, starting when Q2 turns off, and ending when Q3 turns on. This delay is controlled by the internal delays of the IR2104, which intentionally delays the turn-on of Q3 to make sure that Q3 is not turned on before Q2 is fully off. Please be aware that this project is not really working. Please see the note at the end of the introductory s...

    see more »

    To answer your question, Diode D3 is in parallel with Q3, which has an internal body diode. They both have the effect of preventing the inductor voltage (at the drain of Q3) going excessively negative. When Q2 turns off, the inductor current continues and will drive that drain voltage a long way negative unless it is prevented by these diodes. Really the diode D3 should be a Schottky type, rather than the UF4007. The diode only conducts for a short period, starting when Q2 turns off, and ending when Q3 turns on. This delay is controlled by the internal delays of the IR2104, which intentionally delays the turn-on of Q3 to make sure that Q3 is not turned on before Q2 is fully off. Please be aware that this project is not really working. Please see the note at the end of the introductory step.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 2 months ago
    Solar Powered WiFi Weather Station

    Last night my version experienced about -7 Celsius with no apparent problems.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 2 months ago
    Solar Powered WiFi Weather Station

    Its quite ambitious. I suggest you go one step at a time. Re your questions: 1. no resistors needed, provided you activate the pull-up resistors built in to the ESP8266 (rain on D8 and Wind speed on D7)2. I think you need to study your multiplexer for the analog voltage input more carefully. Its a bit hard to understand from the picture you provided, but I think you intend to use D2 (for Vcc), D6 (for wind direction) and D7 (for UV level). D6 and D7 will be set Low when not measuring and High when measuring. D2 (for Vcc) will be the reverse, that is Low when measuring and High when not measuring. The emitter of the PNP transistor is connected to Vcc, the base goes to D2 via a 1K resistor, and the collector goes to A0 via a diode. You need to provide a resistive voltage divider for the...

    see more »

    Its quite ambitious. I suggest you go one step at a time. Re your questions: 1. no resistors needed, provided you activate the pull-up resistors built in to the ESP8266 (rain on D8 and Wind speed on D7)2. I think you need to study your multiplexer for the analog voltage input more carefully. Its a bit hard to understand from the picture you provided, but I think you intend to use D2 (for Vcc), D6 (for wind direction) and D7 (for UV level). D6 and D7 will be set Low when not measuring and High when measuring. D2 (for Vcc) will be the reverse, that is Low when measuring and High when not measuring. The emitter of the PNP transistor is connected to Vcc, the base goes to D2 via a 1K resistor, and the collector goes to A0 via a diode. You need to provide a resistive voltage divider for these measurements, because the analog input can only measure between 0 and 1 Volt. The divider could be (say) 23K and 10K so that 3.3V at the junction of the 3 diodes will translate to 1.0V at pin A0. The values you should use depend on the resistance of your UV sensor, and the pot you are using for wind direction. There are good articles on resistive voltage dividers on the internet. Also depending on the diodes you use, the voltage drop in the diodes will affect the values you get, which will need to be compensated if you want accurate results. 3. The size of the resistor from D2 to the base of the PNP transistor should be less than the resistance of the above voltage divider, and the minimum current gain of the PNP transistor you are using. 4. No resistor needed as long as you set the internal pull-up. I don;t understand how you will use this input, so I can't comment on the function you intend. Other comments:I see your picture has the battery charge controller without undervoltage cut-off.. I think the undervoltage cut-off is a very desirable function to get, to protect your battery from over dischage, which can ruin it. Good luck and enjoy the journey.

    The software for Blynk is at the end of step 15 and for ThingSpeak is at the end of step 18.

    Can you please provide details of how you monitor the battery voltage?Thank you.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 2 months ago
    Solar Powered WiFi Weather Station

    You can download this library from GitHub. Then follow the usual process to install a library in the Arduino IDE.

    View Instructable »
  • Arduino IDE: How to Store and Retrieve Data From a File.

    Very useful information, Iotamajig. This is helping me deal with ESP8266 deep sleep and Blynk. Not there yet but this looks like it will really help. By the way, the link to the explanation of "r" for read, etc. is broken. It needs to be .../filesystem.rst rather than ../filesystem.md.thanks for posting.

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Hi, maybe you missed it, there is a note at the bottom of the introduction page,, just before step 1, saying that this project is not working. You can't actually use it, except for ideas and learning about MPPT solar chargers.

    Hi, when the load current requirement reduces, as in the case you mention, the PWM duty cycle decreases so as to keep the charging current just at the point that maintains the battery voltage at the correct value.

    View Instructable »
  • Arduino - Voltage and Current Measurement ACS712, ADS1015

    A few things were puzzling me about this, and I think you have done a good job in this implementation and I have learned a few things from it. The main point is that the sensitivity is scaled by the ratio of Vcc to 5 volts. It is covered in the ACS712 datasheet under the heading "Ratiometry" which I had never checked before. This means it is imperative, if you want accurate results, to measure Vcc and use it to scale not only the 0 current voltage, but also the sensitivity - which you have done. The implementations I have seen before did not do that. It also means that if you are using the Arduino analog inputs, you still need to measure Vcc. You don't need it for the 0 current voltage adjustment, because the Arduino ADC is itself scaled to its own Vcc, and if the ACS712 and t...

    see more »

    A few things were puzzling me about this, and I think you have done a good job in this implementation and I have learned a few things from it. The main point is that the sensitivity is scaled by the ratio of Vcc to 5 volts. It is covered in the ACS712 datasheet under the heading "Ratiometry" which I had never checked before. This means it is imperative, if you want accurate results, to measure Vcc and use it to scale not only the 0 current voltage, but also the sensitivity - which you have done. The implementations I have seen before did not do that. It also means that if you are using the Arduino analog inputs, you still need to measure Vcc. You don't need it for the 0 current voltage adjustment, because the Arduino ADC is itself scaled to its own Vcc, and if the ACS712 and the Arduino share the same Vcc rail, they are automatically synchronised and the 0 current measurement will always be 512 (ie half of the full scale reading of 1024). However, because the sensitivity also needs to be scaled, it is necessary to measure Vcc to apply the correct sensitivity scaling. To do this accurately requires the use of the Arduino 1V reference, and a voltage divider to bring the measured value within range. As to the relative benefit of using the ADS1015 versus the Arduino, the least significant bit voltage on the Arduino is 4.88 mv (=5000/1024) which translates to 74mA. The ADS1015 is 3mV which translates to 45 mA. So it is not all that much better. But with the ADS1015 you also have the option of changing the scaling to 2mV/lsb which gives better accuracy of 30mA, and which can still just cover the full +-30 range of the ACS712. Yet another option with the ACS1015 is to use another input (I thiink it should be AIN3) set to Vcc/2 using a resistive divider, and do differential measurements between that and the ACS712. With that the sensitivity can be further increased to 1mV/lsb and 15mA, still without loss of the full +- 30A range., because it now exploits the full 12 bits of the ADC in hte ACS1015.

    The circuit diagram shows you are using a voltage divider of 47 K to the measurement point, and 4K7 to ground below the ADC input, giving a nominal division ratio of 11 - quite close to your 10.805 factor. Did you get the 10.805 by calculation from measuring the resistors, or by observing the results compared to the mulimeter?I would be interested to know how well the two track over the full voltage range. The full scale range of the ADS1050 can be set to a variety of different values. The default setting is +-2.024 V according to the data sheet. Yet you have successfully measured the 5V rail (as 4.4V) so presumably the ADAFRUIT library changes the gain setting from the default to +-6.144 V. Is that correct? I could not see anything that changed that in your software, and the 6.144 gain...

    see more »

    The circuit diagram shows you are using a voltage divider of 47 K to the measurement point, and 4K7 to ground below the ADC input, giving a nominal division ratio of 11 - quite close to your 10.805 factor. Did you get the 10.805 by calculation from measuring the resistors, or by observing the results compared to the mulimeter?I would be interested to know how well the two track over the full voltage range. The full scale range of the ADS1050 can be set to a variety of different values. The default setting is +-2.024 V according to the data sheet. Yet you have successfully measured the 5V rail (as 4.4V) so presumably the ADAFRUIT library changes the gain setting from the default to +-6.144 V. Is that correct? I could not see anything that changed that in your software, and the 6.144 gain setting is consistent with the 3mV per lsb that you are using. All this means that your resolution is 33 mV per bit, although making 20 readings and averaging them gives you a fractional bit capability, maybe.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 4 months ago
    Solar Powered WiFi Weather Station

    Hi JonathanM257, I guess you ordered a battery type 18650 which means it is 18 mm in diameter and 65 mm long. The AA battery size is 14500 (14 mm diameter and 50 mm long). You can buy holders for a 18650 battery, they are on Ebay and other places too.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 4 months ago
    Solar Powered WiFi Weather Station

    Hi. I am gradually getting to understand the internet connections. My current understanding is that this WeMos WiFi weather station can be talking to EITHER Blynk (which you monitor with the Blynk app on a mobile phone) OR to ThingSpeak (which you monitor on a computer with a web browser). It does not do both of these at the same time, because you have different software. One software sketch works with Blynk. The other software sketch works with ThingSpeak. Please confirm this is correct. The Blynk software includes the ESP.deepSleep command which conserves power, but results in intermittent connection. The ThingSpeak software uses a delay() function which does not conserve power, and gives you a continuous connection (although you probably can't do anything with it because the process...

    see more »

    Hi. I am gradually getting to understand the internet connections. My current understanding is that this WeMos WiFi weather station can be talking to EITHER Blynk (which you monitor with the Blynk app on a mobile phone) OR to ThingSpeak (which you monitor on a computer with a web browser). It does not do both of these at the same time, because you have different software. One software sketch works with Blynk. The other software sketch works with ThingSpeak. Please confirm this is correct. The Blynk software includes the ESP.deepSleep command which conserves power, but results in intermittent connection. The ThingSpeak software uses a delay() function which does not conserve power, and gives you a continuous connection (although you probably can't do anything with it because the processor is in a busy loop) for 5 minutes).I think there may be a problem with the power consumption exceeding what the solar panel can provide. In tnterpret the ESP8266 datasheet as saying it will use 56 mA when receiving but not transmitting, which I think corresponds to the delay() loop. 56 mA for 24 hours is 1344 mAH. To get this from a 120 mA solar panel requires 11.2 hours of full sun per day, which is essentially impossible. So for the ThingSpeak software, you either need to change the delay() into a ESP.deepSleep function, or use a bigger solar panel. I think the ESP.deepSleep is the better option. I can't try it out myself at the moment because I am still waiting for parts to come in the mail.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 4 months ago
    Solar Powered WiFi Weather Station

    Maybe I have misunderstood, but don't you expect the WeMos to be disconnected all the time, except for a few seconds every 5 minutes when it is reporting data?

    As I understand it, the WeMos board has a low dropout regulator (RT9013) in series with the 5V input. The regulator has a 250 mv dropout. As long as the 5V input pin is above 3.55 V, the board, including the ESP8266, will get 3.3V. If the 5V pin goes below 3.55V, the specs of the RT9013 are a bit obscure, but I think its output voltage probably tracks the input voltage with a 250 mv offset. The TP4056 charger board, assuming it has the battery protection function as recommended by deba168, delivers the current through a pair of MOSFETs which are in series and have Rds ON of about 36 milli Ohms, so the series pair has a resistance of 72 milli Ohms, When the WiFi is transmitting, the current draw may be up to 170 ma so the voltage drop across the MOSFETs will be about 12 milli volts so lo...

    see more »

    As I understand it, the WeMos board has a low dropout regulator (RT9013) in series with the 5V input. The regulator has a 250 mv dropout. As long as the 5V input pin is above 3.55 V, the board, including the ESP8266, will get 3.3V. If the 5V pin goes below 3.55V, the specs of the RT9013 are a bit obscure, but I think its output voltage probably tracks the input voltage with a 250 mv offset. The TP4056 charger board, assuming it has the battery protection function as recommended by deba168, delivers the current through a pair of MOSFETs which are in series and have Rds ON of about 36 milli Ohms, so the series pair has a resistance of 72 milli Ohms, When the WiFi is transmitting, the current draw may be up to 170 ma so the voltage drop across the MOSFETs will be about 12 milli volts so long as the over charge or over discharge circuits are not activated.SO: When the sun is shining the TP4056 controls the battery voltage to be no more than 4.2V, and the ESP8266 gets its proper 3.3V. When the sun is not shining, the battery voltage drops progressively from 3.7 V (fully charged). When it is above 3.562V (that is, 3.55 + 12 mV) the ESP8266 gets 3.3V. Once it falls below 3.562 V, the ESP8266 will get less than 3.3V. It should definitely work down to 3.0 V (battery voltage of 3.262 on my assumptions above) and possibly down to 2.5V (battery voltage of 2.762) based on some testing reported in one of the many blogs on this subject. The DW01 overdischarge protection cuts in at a battery voltage of 2.4 volts, which is almost certainly below the point where the ESP8266 stops working. If you look at my other comment on the sizing of the solar panel, you will see that the liklihood of the battery ever getting even half way discharged is very low. So the low-end performance is probably of no great concern anyway.I hope this helps.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 4 months ago
    Solar Powered WiFi Weather Station

    Several comments below suggest adding other functions - like a wind meter (GregoryG27) and Rain Gauge (Cueball21). Also battery voltage monitor, sunlight level, multiple temperature sensors are of interest to me. These all raise the question of the power budget.This project uses a 120 mA, 5.5V panel and AA-size Li Ion battery, probably 2300 mAH capacity. Monthly average daily GHI (Global Horizontal Irradiance) in New Delhi fluctuates between 3 kWh (December) and 6 kWH (June). Where I live, it varies from 2.3 kWH (June) to 7.3 kWH (December). For reliable operation, the current from the panel needs to be sufficient even in the more cloudy, low GHI periods. Project builders can look up their local GHI values to make a decision about how big a panel they need. I we assume a minimum GHI of...

    see more »

    Several comments below suggest adding other functions - like a wind meter (GregoryG27) and Rain Gauge (Cueball21). Also battery voltage monitor, sunlight level, multiple temperature sensors are of interest to me. These all raise the question of the power budget.This project uses a 120 mA, 5.5V panel and AA-size Li Ion battery, probably 2300 mAH capacity. Monthly average daily GHI (Global Horizontal Irradiance) in New Delhi fluctuates between 3 kWh (December) and 6 kWH (June). Where I live, it varies from 2.3 kWH (June) to 7.3 kWH (December). For reliable operation, the current from the panel needs to be sufficient even in the more cloudy, low GHI periods. Project builders can look up their local GHI values to make a decision about how big a panel they need. I we assume a minimum GHI of 2.0 kWH, that translates (very approximately) into 2 * 120 mAH per day from the panel. The current consumption of our project needs to be no more than this amount. So if it operates 24 hours /day, its average current consumption must me no more than 10 mA (since 10 mA * 24 hours = 240 mAH). When operating the ESP8266 uses up to 170 mA according to the data sheet, although the average may be about 80 mA (I think I saw that on the Sparkfun tutorial). In deep sleep mode the current goes down to 10 microamps, which is near enogh to zero for this analysis. If the functional requirement is to collect and transmit data once per 5 minutes (300s) and each transmission takes 5 seconds (I got that from the Sparkfun tutorial also) the duty cycle is 5/300=1.6%, so the average current may be about 100mA * 1.6% = 1.6 mA - well below our maximum of 10 mA. So the panel used by deba168 is fine for this use. More functions can be added: there are available GPIO interfaces and ample memory for software and data variables. The big issue is to allow the processor to sleep sufficient of the time not to exceed the available current. For example, if wind speed is measured using a rotating anemometer, which produces a sensor input once per revolution, that may need to be detected with an interrupt that wakes the ESP8266, which just counts it and goes back to sleep. Then when reporting is required (eg every 5 minutes) that count is included as a measure of the wind speed. Rainfall measurement could be similar I suppose. If polling is used instead of wake-up interrupts, the processor current consumption would be much higher and so a much bigger solar panel would be needed, and probably a bigger battery as well.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 5 months ago
    Solar Powered WiFi Weather Station

    Good project Deba. I have a question about the diode in series with the solar panel. I think it is not there in the parts list at the beginning of the project. Later on you said you initially forgot to solder it into the circuit. My question is, whether it is really necessary. I see in the pdf file of the TP4056 it says "No blocking diode is required due to the internal PMOSFET architecture and have prevent to negative Charge Current Circuit." - which I would interpret as meaning there is no need for a blocking diode to the supply. However I suspect that you first built the circuit without the diode, and found the battery was discharging into the solar panel when it was dark. Is this correct? Thank you, Keith

    View Instructable »
  • 1602 LCD Keypad Shield Module With I2C Backpack

    Hi ChaitanyaM17, Thank you for doing the Fritzing diagram (in reply to ALEiCARGG). I htink it might help others too. Do you mind if I add it to the Instructable, so it can easily be found by anyone?

    View Instructable »
  • farmerkeith commented on farmerkeith's instructable DIY Linear Actuator6 months ago
    DIY Linear Actuator

    Good question Treepox. When the actuator is installed and the push arm is connected to something (in my case, a vent window in my greenhouse), that will prevent it from rotating. I have assumed that this would always apply.

    View Instructable »
  • farmerkeith's instructable DIY Linear Actuator's weekly stats: 6 months ago
    • DIY Linear Actuator
      3,127 views
      56 favorites
      12 comments
  • farmerkeith commented on farmerkeith's instructable DIY Linear Actuator6 months ago
    DIY Linear Actuator

    Thank you very much for this comment. You reminded me of something I left out. I have now added a new step, Performance, covering the retract and extend times with and without a load. I think this is actually a "true linear actuator", but I think you mean a commercially made one. My guess is that the commercial models also use a screw mechanism, although it is possible some of them may use a rack and pinion instead. The speed of operation is a function of the motor power and the various gearings in the setup. You can get whatever speed of operation you need, by adjusting these factors.

    View Instructable »
  • farmerkeith commented on farmerkeith's instructable DIY Linear Actuator6 months ago
    DIY Linear Actuator

    Thank you. I learned quite a few things by doing this project. Don't be afraid to have a go!

    Great comment, BeachsideHank. I think the practicalities may need some looking into, but in principle a linear actuator would be a really good use for an old cordless drill beyond its use-by date, possibly because of battery failure.

    Thank you.

    View Instructable »
  • 1602 LCD Keypad Shield Module With I2C Backpack

    Hi Aleicargg, I guess the backlight of the LCD is not being turned on, and the most likely reason is that the software logic has to be reversed from the standard setup, due to the transisor in the serial backpack. The connection for the backlight is from serial module pin 16 (the one on far right) to LCD module pin 11 (just above the capital "S" in the word "Shield" printed on the module). In the software, the LCD backlight control commands are:lcd.setBacklight(LOW); // Backlight ONandlcd.setBacklight(HIGH); // Backlight OFFThese are the reverse of the commands you use for direct connection. if the backlight is not on, you will not be able to see the characters on the LCD scree, even if they are being displayed. Please let me know how you get on. Keith

    Hi Aleicargg, I am happy to help you work out these connections. I agree it is a bit hard with no labels on the pins on the boards. When I wrote this instructable, I thought that the explanation I gave in Step 3 was clear. It is a matter of placing the two modules as they are shown in the main photo, and counting pins. Have you tried that? If necessary I will do a diagram but I cannot do it right now, and maybe we can answer your questions without a diagram.

    View Instructable »
  • farmerkeith followed educ8s7 months ago
      • Arduino Wireless Weather Station
      • Art Deco Weather Forecast Display
      • Arduino Pong Game - OLED display
  • farmerkeith commented on Husham Samir's instructable Temperature Data Logger8 months ago
    Temperature Data Logger

    Hi Pandwe,I just came across your question while browsing around some instructables. I think making a logger to write data more rapidly is fairly easy, although you might need to do some extra programming to make the file access process efficient. The bigger challenge for you I think will be the temperature sensor. If you want to go up to 900C, I guess you will need a non-contact sensor. For example the MLX90614 is a non-contact IR temperature sensor, but its data sheet says it goes to 380 C, which is way lower than 900C. Do you have a specific temperature sensor in mind?What logging interval are you really aiming for? Presumably the logging only has to be done for a short period of time, while the quenching operation is happening?Keith

    View Instructable »
  • farmerkeith commented on farmerkeith's instructable Small current circuit breaker9 months ago
    Small current circuit breaker

    Hi Sahil Gupta,I will try to help you understand the schematic. I will try to do it in small steps so that I don't go too fast for you.Please have a look at the schematic image at the top of Step 2: Circuit breaker design. I have added two notes boxes to it. The top box shows the upper level circuit board, which contains the switches and LEDs. The lower box shows the lower level circuit board, which contains the amplifier and resistor network. The two boards are connected together via header pins. You can see the two boards connected togeter via jumper wires in the 3rd photo of the introduction. When in the box, the upper and lower boards just plug together directly, through the header connectors. To follow the circuit, start half way down the lower box, where there is an input connecto...

    see more »

    Hi Sahil Gupta,I will try to help you understand the schematic. I will try to do it in small steps so that I don't go too fast for you.Please have a look at the schematic image at the top of Step 2: Circuit breaker design. I have added two notes boxes to it. The top box shows the upper level circuit board, which contains the switches and LEDs. The lower box shows the lower level circuit board, which contains the amplifier and resistor network. The two boards are connected together via header pins. You can see the two boards connected togeter via jumper wires in the 3rd photo of the introduction. When in the box, the upper and lower boards just plug together directly, through the header connectors. To follow the circuit, start half way down the lower box, where there is an input connector shown. That connector takes you to Q1 which is the reverse protection MOSFET. Can you see that.?Please respond to the above, and let me know if you understand it all, or none, or what might puzzle you so far. I am happy to help you. Keith

    View Instructable »
  • farmerkeith commented on farmerkeith's instructable Small current circuit breaker9 months ago
    Small current circuit breaker

    Hello Sahil_Gupta, Have you been able to get the schematic already included in this instructable? It is in the images at the top of the introduction, and also shows up as a pdf file in Step 2. If you have this schematic, and have any trouble understanding it, please let me know and I will try to help you to follow it.

    View Instructable »
  • farmerkeith followed jazzycamel10 months ago
      • Quick Arduino Hygrometer (Humidity Sensor)
      • Non-blocking Ultrasonic Sensor for Arduino
      • Optical Mouse Odometer for (Arduino) Robot
  • farmerkeith's instructable DIY Logging Thermometer with 2 sensors's weekly stats: 10 months ago
    • DIY Logging Thermometer with 2 sensors
      1,340 views
      68 favorites
      0 comments
  • farmerkeith's instructable DIY Logging thermometer's weekly stats: 11 months ago
    • DIY Logging thermometer
      279 views
      25 favorites
      4 comments
  • farmerkeith commented on jessyratfink's forum topic Call for contest judges11 months ago

    You can put me down for Tech and Workshop. Willing to help anywhere you have a need.farmerkeith

    View Topic »
  • farmerkeith commented on farmerkeith's instructable DIY Logging Thermometer11 months ago
    DIY Logging Thermometer

    Thank you. Yes I agree. I appreciate your comments.

    View Instructable »
  • farmerkeith followed deba168 and Maverick7111 months ago
      • DIY All in One Solar Power Pack
      • SMART POWER OUTLET
      • CARDBOARD SOLAR LAMP
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Hi Thomas / thschaef,I think it is very unlikely that changing the clock frequency in the Arduino will fix the problem of the low-side MOSFET being on for too long, and sometimes on at the wrong time altogether. I am working on a solution but I want to test it carefully before going public.

    Hi Kapilku97, A0, A1, D9, D8 etc. are the analog and digital pins on the Arduino Nano used to control the MPPT charge controller.

    View Instructable »
  • DIY: A 5 Minutes Contactless OLED Thermometer With Arduino And MLX90614

    You are using a 3.3V IR sensor, but you have not put in any components to protect the sensor from 5V on the I2C bus. Is this safe?

    View Instructable »
  • DIY Arduino Battery Capacity Tester - V1.0

    Hi Deba168. If you want to discharge at constant current, I think you can use a current mirror circuit. The energy will end up being dissipated in the MOSFET, but I think that is not a problem at the power levels you are working with.

    View Instructable »
  • farmerkeith commented on Mohannad Rawashdeh's instructable Motor Driver BTS7960 43A1 year ago
    Motor Driver BTS7960 43A

    Hi Jake,There are lots of things I could say about this software. It could be clearer to read and better performance for the computer (Arduino). However I will just try to get you going.The code under "void setup" is first:for(int i=5;i<9;i++){ pinMode(i,OUTPUT); }This is a loop that sets pins 5, 6, 7 and 8 as OUTPUT. These 4 pins are the ones used for RPWM, LPWM, L_EN and R_EN (note the order goes R, L, L, R - if I had been doing it I would have used R, L, R, L and avoid the crossover in the wiring).The next few lines are:for(int i=5;i<9;i++){ digitalWrite(i,LOW); }Another loop, this time to set pins 5, 6, 7 and 8 to LOW (ie logic 0). Then there is a 1 second delay, and the serial monitor is started.Now under void loop ()First we turn on both Enable pins:digital...

    see more »

    Hi Jake,There are lots of things I could say about this software. It could be clearer to read and better performance for the computer (Arduino). However I will just try to get you going.The code under "void setup" is first:for(int i=5;i<9;i++){ pinMode(i,OUTPUT); }This is a loop that sets pins 5, 6, 7 and 8 as OUTPUT. These 4 pins are the ones used for RPWM, LPWM, L_EN and R_EN (note the order goes R, L, L, R - if I had been doing it I would have used R, L, R, L and avoid the crossover in the wiring).The next few lines are:for(int i=5;i<9;i++){ digitalWrite(i,LOW); }Another loop, this time to set pins 5, 6, 7 and 8 to LOW (ie logic 0). Then there is a 1 second delay, and the serial monitor is started.Now under void loop ()First we turn on both Enable pins:digitalWrite(R_EN,HIGH); digitalWrite(L_EN,HIGH);After a delay, ramp up the PWM on the RPWM pin:for(int i=0;i<256;i++){ analogWrite(RPWM,i); // analogWrite(LPWM,255-i); delay(100); }Note that the 3rd line is commented out (// analogWrite(LPWM,255-i);) so it does nothing. At the moment LPWM is LOW, due to setup() when it was set to LOW.So the motor will gradually increase in speed, in steps of 1/256, from 1/256 to 255/256, increasing one step every 100 ms. It will take about 25 seconds to go from stopped to full speed. The next section of code ramps the speed down from full to zero.I believe the next section of code after that is intended to run the motor backwards, but there are two errors so it does nothing. Here is the code "as is" with my comments:Serial.println("EN LOW"); // prints to serial monitor, no effect on motor digitalWrite(R_EN,LOW); // disable Right motor driver digitalWrite(L_EN,LOW); // disable Left motor driver delay(1000); for(int i=0;i<256;i++){ analogWrite(RPWM,i); // RPWM ramp as before, // does nothing because motor driver is disabled delay(100); } delay(500); for(int i=255;i>0;i--){ analogWrite(RPWM,i); RPWM ramp as before, delay(100); } delay(500); }The simplest fix is to get rid of the two lines that disable the motor drivers (eg comment them out with // at the beginning of the line).And then change the two analogWrite lines from RPWM to LPWM. So now it looks like this:delay(1000); for(int i=0;i<256;i++){ analogWrite(LPWM,i); // LPWM rampupdelay(100); } delay(500); for(int i=255;i>0;i--){ analogWrite(LPWM,i); LPWM ramp down delay(100); }I hope this helps. I have not tested this code. See also comment from OlegK34 who does not mention changing the RPWMs to LPWMs. But I think he must have.Good luck,Keith

    View Instructable »
  • farmerkeith commented on deba168's instructable 5500mW Laser Engraver / Cutter1 year ago
    5500mW Laser Engraver / Cutter

    Hi, lots of good info here, but still some questions:1. What is the resolution of the cutting/engraving motion (depends on how many mm corresponds to one step in the stepper motors on x and y axes. Are they the same (probably))? If the documentation does not specify, maybe you can try engraving a pattern of lines that converge slowly, and use that to see where they merge.2. What type of stepper motors and what type of motor drivers are used? 3. What operating systems can BenBox software run with? Does it run under Linux variants like Xubuntu? If not is there an open source alternative that does?4. Can you add the wavelength of the laser to the information about the kit, since this seems to be a big factor in what it is capable of doing?Thank you.

    View Instructable »
  • farmerkeith commented on Mohannad Rawashdeh's instructable Motor Driver BTS7960 43A1 year ago
    Motor Driver BTS7960 43A

    Alik140, With this module you can control one motor in both directions (forward and reverse) or 2 motors each in one direction only. I hope you found your answer somewhere else before this.

    View Instructable »
  • farmerkeith commented on grahamhusband's instructable Easy, Mobile IR Thermometer1 year ago
    Easy, Mobile IR Thermometer

    Very useful project, just what I was looking for.

    View Instructable »
  • Reverse Polarity Protection Circuits

    For Atmel328 at 5V, I think you can use any general purpose PNP transistor. The Atmel328 itself only draws about 20 mA. However your circuit may have peripherals that take more current. Still, a PNP like the 2N3906 has a max current of 200 mA so it should be plenty - although I think if you actually need that much current then a) you should use either a transistor with more current capacity (eg TIP125) or go to the FET solution which is better anyway. For FET I would look at IRF4905 for a high power solution, or BS250 for lower currents. Both these FETs have a +-20V Gate - Source rating so you don't need the resistor and zener diode in circuits running at or below 12V, even with unregulated power supplies.

    View Instructable »