Welcome to Mr. Campbell's page at Kellenberg Memorial High School. Mr. Campbell is an instructor for the Computer 12 - Computer Science elective, moderator of the Computer Club, and moderator of the KM2ARC Amateur Radio Club

National Parks On The Air

National Parks On The Air

Throughout 2016, Amateur Radio will be helping the National Park
Service celebrate the 100th anniversary. Hams from across the country
will activate NPS units, promote the National Parks Service and
showcase amateur radio to the public. For more information go to ..

mrcampbell / February 22, 2016 / KM2ARC, Radio News

Local Ham Fest – February 28, 2016

LIMARC Hamfest

LIMARC (The Long Island Mobile Amateur Radio Club) will hosting a hamfest at Levittown Hall on
Sunday, February 28, 2016. Doors open at 9:00 A.M.  Admission is $6.00 per person.  You will find all sorts of assorted items related to amateur radio.  There will also be a VE session at 10:00 AM for those looking to get licensed or upgrade their license.

Want to learn more about Software Defined Radio, there will be a presentation at 11:00 AM.

Levitown hall is located at 201 Levittown Parkway, Hicksville, NY 11801

mrcampbell / February 19, 2016 / Radio News

Thermometer Project

Our ongoing project is to build a weather center.  We have discussed the many components involved with creating a weather center.  Now let’s start experimenting with the components we already have available to us.

Using our Sparkfun Inventors Toolkit we will use our potentiometer, LCD Display, and the TMP36 to build a thermometer.

Here are the parts and their use:

  • The TMP36 is used to measure the temperature.  Read more about the TMP36
  • The LCD Will be used to display the temperature in both Celsius and Fahrenheit.
  • The potentiometer is used to control the contrast of the LCD

The first step is to set up your RedBoard and breadboard (note: the Redboard is equivalent to the Arduino UNO for our purposes).  Please use the following diagram to help you connect your components.  Click on the picture to open a larger copy:

Connections for Thermometer Project

Connections for Thermometer Project

Next copy the following code into a new Arduino sketch.  (hint: highlight code from the bottom up to prevent the line number from being copied)

/*Kellenberg Memorial High School Computer Club
 * TMP36 and LCD 
 * The following code is used to read the temperature using the TMP36 sensor
 * and display it on an Liquid Crystal (LCD) display
// include the Liquid Crystal (LCD) library code:
#include <LiquidCrystal.h>

//TMP36 on Analog pin 0
int tmp36=0;

// initialize the LCD library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
 // set up the LCD's number of columns and rows:
 //Our LCD has is 2 rows of 16 characters
 //lcd.begin initializes the library for our LCD
 lcd.begin(16, 2);

void loop() {

 //First we will read voltage the tmp36 sensor. the 
 //variable tmp36 = 0 for the analog pin it is
 //connected to. 
 int input0=analogRead(tmp36);

 //convert the reading to voltage 
 //This formula converts the number 0-1023 from the ADC into 0-5000mV (= 5V)
 //voltage = (input*5.0)/1024
 float voltage=input0*5.0;

 //converting from 10 mv per degree with 500 mV offset
 //to degrees ((voltage - 500mV) times 100)
 float tempCel=(voltage -.5) * 100;

//now we can convert celcius to fahrenheit
 float tempFar = (tempCel * 9.0 / 5.0) + 32.0;

//Set the LCD to the top line first position (0,0)
// (position,line)
//display the temperature in degrees centigrade
 lcd.print("Temp (c) = ");
//set the LCD cursor to the next line first position (0,1) 
// (position,line)
 lcd.setCursor(0, 1);
//display the temperature in degrees fahrenheit 
 lcd.print("Temp (f) = ");
//wait for one second to keep the display from flashing
 delay (1000*1);

Once you have copied and pasted the code, compile it and upload it to your RedBoard.

mrcampbell / February 15, 2016 / Computer Club, Computer Club Projects

Computer Club Meeting 1-5-2016

Club Member Paul Bartolemea (2020) Drew our initial flowchart.

Club Member Paul Bartolemea (2020) Drew our initial flowchart.

At today’s meeting we discussed our long term project.  The project proposals included either a activity tracking device or a weather station.  The club members voted for building a weather station.

Our next steps are to identify the initial specifications of the weather station.  We discussed incorporating the following features:

  • Temperature
  • Humidity
  • Barometric Pressure
  • Tides
  • Wind Direction
  • Wind Speed
  • Earthquake Detection
  • Daylight
  • Precipitation
  • Probability of Rain or Snow
  • Position of the Earth Relative to the Sun

For our hardware development platform we discussed using the Arduino Mega and Raspberry Pi.  We would like to log data from the station in a database and eventually present live and historical data from the station on the web.

A feature of the web presentation will include a live video.

For power of our station we will look at using solar power with a battery for night and times when there is not enough sunlight to power the station.

mrcampbell / January 7, 2016 / Computer Club

Computer Club Meeting Notes: 11-03-2015

Today we will be working on the Button Project.  This Project led us to the “Guess What Number I’m Thinking” project.  Keep in mind that in the Guess What Number I’m Thinking project the Arduino will select a number from 1 to 4 and using the 4 buttons you will attempt to guess what number the Arduino has thought of.

The following is a diagram for how to wire the Arduino and components for this project:

Project 5 - Push buttons Diagram

The code for the project is as follows:

SparkFun Inventor's Kit
Example sketch 05
This sketch was written by SparkFun Electronics,
with lots of help from the Arduino community.
This code is completely free for any use.
Visit http://learn.sparkfun.com/products/2 for SIK information.
Visit http://www.arduino.cc to learn about the Arduino.
Version 2.0 6/2012 MDG

// First we'll set up constants for the pin numbers.
// This will make it easier to follow the code below.

const int button1Pin = 2; // pushbutton 1 pin
const int button2Pin = 3; // pushbutton 2 pin
const int ledPin = 13; // LED pin

void setup(){
      // Set up the pushbutton pins to be an input:
     pinMode(button1Pin, INPUT);
     pinMode(button2Pin, INPUT);
     // Set up the LED pin to be an output:
     pinMode(ledPin, OUTPUT); 

void loop(){
 int button1State, button2State; 

 // Since a pushbutton has only two states (pushed or not pushed),
 // we've run them into digital inputs. To read an input, we'll
 // use the digitalRead() function. This function takes one
 // parameter, the pin number, and returns either HIGH (5V)
 // or LOW (GND).

 // Here we'll read the current pushbutton states into
 // two variables:

 button1State = digitalRead(button1Pin);
 button2State = digitalRead(button2Pin);

 // Remember that if the button is being pressed, it will be
 // connected to GND. If the button is not being pressed,
 // the pullup resistor will connect it to 5 Volts.

 // So the state will be LOW when it is being pressed,
 // and HIGH when it is not being pressed.
 // Now we'll use those states to control the LED.
 // Here's what we want to do:
 // "If either button is being pressed, light up the LED"
 // "But, if BOTH buttons are being pressed, DON'T light up the LED"

 if (((button1State == LOW) || (button2State == LOW))&&
 !((button1State == LOW) && (button2State == LOW))){

       digitalWrite(ledPin, HIGH); // turn the LED on
       digitalWrite(ledPin, LOW); // turn the LED off

mrcampbell / November 3, 2015 / Computer Club

Computer Club Meeting 10-27-2015

Here is the wrap of our meeting from 10-27-2015.  We reviewed our projects to date and looked at the projects we will be taking on in the next couple of weeks.

  1. Next week we will be working on the “Button Project”
  2. After the “Button Project” we will work on the “Guess the Number Project”
  3. We have two problems to solve:
    • lqef ef s fehzwa fgpflelglevt oezqak. dwsj ef tvm_jv_fejt_gz_sti_iv_lqa_kasw_oqswwatjaf
    • x = raw_input("enter the password");
      y = ""; 
      for c in x: 
               y += chr(ord(c) ^ ord(" "));
      if y == "nottherightcase":
               print "congratz the flag is "+y;
               print "nope";


For our second problem, the language is Python.  Go to http://www.asciitable.com/ for an ASCII table.

and remember ^ = bitwise exclusive or

Computer Club Update 10-27-2015 -> This is the presentation that was used in the meeting.

mrcampbell / October 27, 2015 / Computer Club