loading
4Instructables5,083Views12 CommentsAustralia
I am a retired professional engineer, now farmer. Taking an interest in all things technological and in building devices useful on the farm.

Achievements

Show 0 More »
  • farmerkeith's instructable DIY Logging Thermometer with 2 sensors's weekly stats: 2 days ago
    • DIY Logging Thermometer with 2 sensors
      1,340 views
      68 favorites
      0 comments
  • farmerkeith's instructable DIY Logging thermometer's weekly stats: 1 week ago
    • DIY Logging thermometer
      279 views
      25 favorites
      4 comments
  • farmerkeith commented on jessyratfink's forum topic Call for contest judges2 weeks 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 Thermometer2 weeks ago
    DIY Logging Thermometer

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

    View Instructable »
  • farmerkeith followed deba168 and Maverick711 month 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 43A2 months 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 / Cutter5 months 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 43A5 months 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 Thermometer5 months 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 »